ちょいとSCPでファイルを取ってきたり、置いたりしないといけなかったので。
Pexpect
Pexpectというライブラリを利用。
コマンドを自動化できる。一番良いのはpasswordを聞かれるのを自動で答えてくれること。
SCP
SCPのサンプルコード。らくちん。
import pexpectSERVER = "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 pexpectSERVER = "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で教えてもらいました。後で試す。
公式
参考
- Python SSH SCP and Expect Example Script
- In Unix, how do I use the scp command to securely transfer files between two computers?
- 新規パッケージ:pexpect









