用expect不用输密码自动scp数据
今天公司要求把一台服务器上的备份sql文件都传到公司本地服务器上,但公司本地服务器上做了key验证的,也就是说要用key才能登录本地服务器,还有外网的那台服务器没有做key验证,好吧,那就直接从那台服务器上把数据拖到本地服务器上吧.
脚本如下:
vi down.exp
执行方式如下:
chmod +x down.exp
expect down.exp
这样就可以不用输入密码,就把公网服务器上的备份数据拷到本地服务器上来.
脚本如下:
vi down.exp
#!/usr/bin/expect -f set timeout -1 set passwd 你的密码 spawn scp -r -P18330 root@72.11.x.x:/root/newfile/* /root/bak/ match_max 100000 expect -exact "password:" send -- "$passwd\r" expect eof
执行方式如下:
chmod +x down.exp
expect down.exp
这样就可以不用输入密码,就把公网服务器上的备份数据拷到本地服务器上来.
ps:要安装expect
centos直接yum -y install expect
评论: