スクリプトが自動的にパスワードを取得できるようにするにはどうすればよいですか?

スクリプトが自動的にパスワードを取得できるようにするにはどうすればよいですか?

次の行を含む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

おすすめ記事