从远程服务器拷贝数据文件到指定的服务器上,估计是需要同学都遇到过的问题。如果用scp来实现自动拷贝文件,但是需要用户来输入的密码,否则无法实现,怎么办?听说expect可以解决这个问题。
首先 先检测 服务器上面有没有 expect
rpm -qa | grep expect
如果没有
安装
yum install -y expect
参考脚本
#!/bin/bash
expect -c "
spawn scp root@1.2.3.4:/root/1.log /root
expect {
\"*assword\" {set timeout 300; send \"password\r\";}
\"yes/no\" {send \"yes\r\"; exp_continue;}
}
expect eof"