PythonでSSHとかSCPとかを自動化



ちょいとSCPでファイルを取ってきたり、置いたりしないといけなかったので。


Pexpect


Pexpectというライブラリを利用。


コマンドを自動化できる。一番良いのはpasswordを聞かれるのを自動で答えてくれること。


SCP

SCPのサンプルコード。らくちん。



import pexpect

SERVER = "www.rokujyouhitoma.com"
USER = "rokujyouhitoma"
SOMEDIR = "~"
PASSWORD = "bar_password"
UPLOADDIR = "baz_dir"

if __name__ == "__main__":
scp = pexpect.spawn('scp -r %s@%s:%s %s' % (USER, SERVER, SOMEDIR, UPLOADDIR))
scp.expect('.ssword:*')
scp.sendline(PASSWORD)
scp.interact()

ま、問題はこんな危険なコードが流失したらだなぁー。


SSH

同様にSSHのサンプルコードを。



import pexpect

SERVER = "www.rokujyouhitoma.com"
USER = "rokujyouhitoma"
PASSWORD = "bar_password"

if __name__ == "__main__":
foo = pexpect.spawn('ssh %s@%s' % (USER, SERVER))
foo.expect('.*ssword:')
scp.sendline(PASSWORD)
foo.interact()


重要なことなのでもう一度。危険だから、使い方には注意して下さい。



ま、あれだな。引数でパスワードを取るように変えるしか考えつかないけど・・・。


追記


「pitを使えばパスワードを隠蔽化できるよ」ってTwitterで教えてもらいました。後で試す。


公式



参考


トラックバック(0)

このブログ記事を参照しているブログ一覧: PythonでSSHとかSCPとかを自動化

このブログ記事に対するトラックバックURL: http://www.rokujyouhitoma.com/mt/mt-tb.cgi/176

あわせて読みたい

  • あわせて読みたいブログパーツ

Lingr java-ja

ウェブページ

Powered by Movable Type 4.1