次の行を含むsftp
スクリプトなど、あるサーバーから別のサーバーにいくつかのファイルを実行するスクリプトがあります。script.ksh
sftp user@ip_address << EOF
cd path
put file1
bye
EOF
スクリプトを実行するとき。
./script.ksh
以下のようにパスワードを尋ねます。
Password:
パスワードのない接続ではないため、ここではパスワードを手動で渡す必要があります。
このスクリプトを自動化したいのですが、Password
メッセージが表示されたら自動的にパスワードを取得する必要があります。誰でもどんな提案がありますか?
ベストアンサー1
この試み:
#!/usr/bin/expect
spawn sftp USERNAME@ip_address:/path/to/folder
expect "Password:"
send "PASSWORD\n"
expect "sftp>"
send "put file1\n"
expect "sftp>"
send "bye\n"
または、スクリプト全体を期待どおりに使用したくない場合:
#!/bin/sh
expect << 'EOS'
spawn sftp USERNAME@ip_address:/path/to/folder
expect "Password:"
send "PASSWORD\n"
expect "sftp>"
send "put file1\n"
expect "sftp>"
send "bye\n"
EOS