須要使用到expect。linux
#!/usr/bin/expect -f set password 123456 set date [exec date "+%Y%m%d"] #upload spawn scp -C /data/dbdump/file/db$date.backup.gz user@1.2.3.4:/home/meng/backup-file/ set timeout 300 #超時等待300秒 expect "assword:" set timeout 300 #超時等待300秒 send "$password\r" #expect "100%" set timeout 3600 #超時等待3600秒 send "exit\r" expect eof
crontab設置bash
30 2 * * * /dbdump/remotedump.sh >>/var/log/remotedump.log 2>&1
expect是一款自動化的腳本解釋型的工具。服務器
expect基於tcl腳本,expect腳本的運行須要tcl的支持。ssh
expect對一些須要交互輸入的命令頗有幫助,好比ssh ftp scp telnet。工具
遠程登陸linux服務器的時候,ssh命令須要手工輸入密碼,當登陸多臺機器的時候就會很是繁瑣。spa
expect就能夠根據設定的規則,自動幫咱們輸入密碼,大大節省了時間。code
通常機器不會自帶expect,須要手動安裝。crontab
系統爲RHEL/CentOS:rem
yum install expect