首页 > 系统服务 > 详细

Shell命令之SCP远程同步并做定时任务

时间:2019-06-13 10:38:00      阅读:180      评论:0      收藏:0      [点我收藏+]
(1)、写脚本
scp专为远程拷贝设计的 ,传送过程也使用了ssh加密,但是使用scp要手动输入用户名和密码 网上有很多解决的办法,这里我使用 的是expect这个软件,所以需要先按照expect这个包,最简单方法通过yum install expect,想了解更多通过man expect进行查看。下边脚本是通过expect进行无密码输入,从远程直接拷贝文件过来。

[root@zabbix-server]# yum install expect  -y
[root@zabbix-server script]# cat scp.sh
#! /bin/sh
source /etc/profile         ######引入环境变量
source ~/.bash_profile

export pass=xxxx
export name=xxxx
expect -c "
    spawn scp -r  xxxx@X.X.X.X:/var/opt/gitlab/git-data/repositories/   /data/repositories
    expect {
        \"*assword\" {set timeout -1; send \"$pass\r\"; exp_continue;}
        \"yes/no\" {send \"yes\r\";}
    }
#expect eof
exit"
date +%F-%T

(2)、做定时任务
[```
root@zabbix-server script]# crontab -l
0 1 * /root/script/scp.sh >>/tmp/scp.log 2 >& 1


查看日志,可以先测试,如果手动执行时成功的,通过定时任务怎么都不成功的话,一般都是环境变量的问题,所以开头引入环境变量source /etc/profile     source ~/.bash_profile

Shell命令之SCP远程同步并做定时任务

原文:https://blog.51cto.com/liqingbiao/2407913

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!