레이블이 ssh인 게시물을 표시합니다. 모든 게시물 표시
레이블이 ssh인 게시물을 표시합니다. 모든 게시물 표시

Linux - scp를 이용한 파일 전송 (ssh 22번포트)

linux에서 ftp대신 scp를 이용해 22번 포트로 파일을 전송 할 수 있습니다.

사용법

1. scp 파일 계정@IP:상대방파일경로
ex) scp test.txt root@192.168.0.8:/scptest

2. scp -P 포트 파일 계정@IP:상대방파일경로
ex) scp -P 22 test.txt root@192.168.0.8:/scptest

1번의 경우 디폴트로 22번 포트를 사용합니다. 그러나 2번 방법은 포트를 직접 지정 할 수 있는데, ssh의 포트를 22번으로 사용하지 않는 경우 사용 할 수 있습니다.


-------------------EX----------------------
--전송자--
[root@localhost scptest]# cat test.txt
SCP
TEST
FILE
[root@localhost scptest]# scp test.txt root@192.168.0.8:/scptest
root@192.168.0.8's password: 
test.txt                                      100%   14     0.0KB/s   00:00    
--전송자--

--수신자--
[root@localhost scptest]# ls
test.txt
[root@localhost scptest]# cat test.txt
SCP
TEST
FILE
--수신자--
-------------------EX----------------------


python - pxssh를 이용한 ssh connect & send command

pxssh를 이용하면 ssh를 이용해 linux에 접속하여 직접 command를 날릴 수 있고, 반환값도 받아 올 수 있습니다.

먼저 pxssh를 이용하기위해 모듈 pexpect를 설치해줍니다.

# wget https://pypi.python.org/packages/source/p/pexpect/pexpect-4.0.1.tar.gz#md5=056df81e6ca7081f1015b4b147b977b7

# tar xvf pexpect-4.0.1.tar.gz

# cd pexpect-4.0.1.tar.gz

# python setup.py install

먼저 모듈을 아래와 같이 로드해줍니다.

from pexpect import pxssh

현재 파이썬 3.x버전을 사용하고 있으며, 간혹 책이나 튜토리얼을 보게되면

import pxssh 와 같이 선언하는 문구를 보실 수 있습니다.

그러나 위와 같이 선언시 import하지 못해 에러가 발생합니다.

s = pxssh.pxssh()를 통해 변수를 초기화 해 준 뒤 아래의 함수들을 이용하여 로그인 및 커맨드를 실행합니다.

s.login(Domain, ID, Password) - 로그인 관련 메소드로 해당 도메인에 해당 아이디와
 패스워드를 이용해 로그인 합니다.

s.sendline(Command) - 명령어를 실행하는 부분으로 Command에 입력된 명령어를 실행합니다.

s.prompt() - 실행된 명령어의 실행(return되는) 값을 받기 위해 사용합니다.

s.before.decode() - s.before에 실행된 명령어를 가지고 있고, 이를 decode()하여 출력합니다.


위와 같은 코드를 완성하였습니다.

Line 4 - 127.0.0.1 도메인으로 root/123456 으로 로그인을 시도합니다.
(로그인 관련 리턴값을 받아 올 수 있습니다.)
Line 6 - uname -v 명령어를 실행합니다.
Line 8 - 받아온 값을 출력합니다.

실행 결과는 아래와 같습니다.

----------------------------------------------------------------
# python3 pxssh.py 
uname -v
#1 SMP Tue Nov 11 17:57:25 UTC 2014
----------------------------------------------------------------