먼저 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()하여 출력합니다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from pexpect import pxssh | |
s=pxssh.pxssh() | |
s.login('127.0.0.1', 'root', '123456') | |
s.sendline('uname -v') | |
s.prompt() | |
print (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
----------------------------------------------------------------