第三步 使用scp远程拷贝,自动输入用户名和密码

 在有mysql数据库的主机上备份好数据表后,我们要将它远程拷贝到本地分析,毕竟大多数情况下数据分析不能影响项目运营。

 说到远程拷贝第一个想到的自然是scp,这个东西专为远程拷贝设计的 ,传送过程也使用了ssh加密,但是使用scp要手动输入用户名和密码 网上有很多解决的办法,这里我使用  的是expect这个软件,说道expect这个软件 自然是异常强大,这里我们也只是使用到冰山一角,不去详细讲解 ,只为满足我们的需求..

 首先是安装(本人使用的系统 centos!!!),直接使用yum -y install expect 安装这个软件 ,它会帮助你安装所有的依赖,安装完成后试一下,except 如果发生了点什么说明安  装成功,喜欢源码安装的大神们就不讲了

  这里接着上一步,想把备份好的最新的文件拷贝到本地你可能会这样使用scp

  scp root@192.168.1.1:/home/XXX.sql /home 

将远程服务器192.168.1.1 上面/home/XXX.sql 拷贝到本地的/home目录下 那么下面我们使用expect自动输入密码 将它封装成一个shell

1 #!/usr/bin/expect
  2 set passwd "123456"
  3 spawn scp root@192.168.1.1:/home/xxx.sql /home
  4 expect {
  5   "密码:"
  6         {
  8           send "$passwd\n"
  9         }
 10    "pass"
 11         {
 13           send "$passwd\n"
 14         }
 15    "yes/no"
 16         {
 17           sleep 5
 18           send_user "send yes"
 19           send "yes\n"
 20         }
 21    eof
 22     {
 23         sleep 5
 24         send_user "eof\n"
 25     }
 26 }
 27 send "exit\r"
 28 expect eof
当检测到”pass“ 或者 ”密码:“字样后 使用send 发送 密码给scp程序,这里边send_user 的意思是输出到控制台 这样我们就可以将远程服务器上的备份文件拷贝到本地而且也不需要输入密码了 

哈哈,第三步结束了,我们将在下一步解决使用shell操作数据库,分析后导出结果




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值