pythonのpexpectでssh
pythonでSSHとか使いたい!ってことで使ってみました
昔paramikoというモジュールを使っていたのですが、こっちのほうが個人で気に使いやすかったです
pexpectはexpect風な対話ができるPythonモジュール
一緒にpxsshというsshが簡単にできるモジュールがついてくるらしい
ということで、こっちを使ってみた
*ここを参考
pexpect: http://www.noah.org/wiki/pexpect
pxssh: http://pexpect.sourceforge.net/pxssh.html
インストール
pipからインストール
pip install pexpect
ソース
ソースはこんな感じ
''' Created on Jan 10, 2012 @author: ogata ''' import pxssh def main(): try: s = pxssh.pxssh() hostname = 'ホスト' username = 'ユーザー' password = 'パスワード' s.login (hostname, username, password) s.sendline ('cd temp/test') s.prompt() s.sendline ('ls -l') s.prompt() print s.before s.sendline ('cat test.txt') s.prompt() print s.before s.sendline ('rm -f test.txt') s.prompt() print 'debug: file deleted!' s.logout() except pxssh.ExceptionPxssh, e: print "pxssh failed on login." print str(e) if __name__ == '__main__': print "-- main --" main() print "-- end --"
実行結果
-- main -- ls -l total 4 -rw-r--r-- 1 root root 3 Jan 11 10:17 test.txt cat test.txt this is a pen. debug: file deleted! -- end --
ちゃんと動きました!