shell脚本实现scp远程复制

转自:https://blog.csdn.net/work_msh/article/details/8473847

 

某些生产系统在没有NBU等备份软件的情况下,需要把备份的文件拷到另外的服务器上进行存储,为了节省不必要的时间,我们可以使用脚本实现自动拷贝:

我们会在脚本里使用到一个软件:expect

首先需要在服务器安装,挂载介质,打开/Package

rpm -ich expect-5.44.1.15-5.el6_4.x86_64.rpm 

 

#!/usr/bin/expect
set passwd "123456"
spawn scp root@172.18.31.26:/soft/p13390677_112040_Linux-x86-64_2of7.zip /opt
expect {
  "密码:"
        {
          send "$passwd\n"
        }
   "pass"
        {
          send "$passwd\n"
        }
   "yes/no"
        {
          sleep 5
          send_user "send yes"
          send "yes\n"
        }
   eof
    {
        sleep 5
        send_user "eof\n"
    }
}
set timeout 3000
send "exit\r"
expect eof

当检测到”pass“ 或者 ”密码:“字样后 使用send 发送 密码给scp程序,这里边send_user 的意思是输出到控制台 这样我们就可以将远程服务器上的备份文件拷贝到本地而且也不需要输入密码了 。

 

posted @ 2018-11-16 15:11  pakichan  阅读(13562)  评论(1)    收藏  举报