scp
ファイルを別のサーバーにバックアップするコマンドを入力するスクリプトがあります。ところで実行すればパスワードを聞いてみました。これを自動化する方法はありますか? CentOS 5.6を使用しています。私はガイドをほとんど見たことがなく、spawn
私がそれを使用するときにコマンドを使用していると言います-bash: spawn: command not found
。
#!/usr/bin/expect -f
# connect via scp
spawn scp "[email protected]:/home/santhosh/file.dmp" /u01/dumps/file.dmp
#######################
expect {
-re ".*es.*o.*" {
exp_send "yes\r"
exp_continue
}
-re ".*sword.*" {
exp_send "PASSWORD\r"
}
}
interact
答え1
キーベースの認証と空のパスワードを使用してください。パスワードを求められません。
フォローするこれらスピード。
答え2
「Expect」がインストールされていることを確認してください。 「yum」を使用するLinuxディストリビューションでは、rootとして実行します。# yum install expect
次に、次のように入力してスクリプトの予想されるパスが正しいことを確認します。$ which expect
/usr/bin/expect 返されたパスはスクリプトの先頭に配置されます。 # !/usr /bin/期待-f
答え3
スポーンが正しく機能しない場合は、意図したインストールを確認する必要があります。パスワード転送は次のように自動化できます。
spawn scp "[email protected]:/home/santhosh/file.dmp" /u01/dumps/file.dmp
expect {
"assword:" {
send "MyPassword\r"
# you can send remote commands here..
}
"yes/no)?" {
send "yes\r"
sleep 2
exp_continue
}
timeout {
puts "\nError: timed out.\n"
exit
}
}