须要使用到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