大家都知道rsync用于增量同步是很好用的。
只需要:
rsync的更新是差量的,即有变化的文件才更新,最大程度的减少了数据传输量和时间。
实际上,rsync是支持ssh协议的,只要走ssh协议就可以了。走ssh协议速度稍慢一些,但是配置非常简单。 1、安装rsync和sshpass安装rsync。我们走的是rsync over ssh协议,因此不需要在服务器端安装rsyncd,只要服务器开了ssh就行。
基于Debian的发行版一般都有sshpass,如果你的CentOS没有,直接去下载,编译一个,无依赖,非常简单. 2、一次更新在rsync over ssh的基础上,我们采用sshpass解决非交互模式输入密码的问题。(传统做法是:使用密钥,但是很麻烦。) 我们先得成功登录一次remotehost,之后就可以使用sshpass了。 ssh remote_user@remote_host 特别提醒:如果今后远程主机重装系统,或者换了机器,一定要删除本地~/.ssh/known_host,否则是会无法登录的。 下面测试rsync over ssh,密码登录。 sshpass -p remote_password rsync -avz –delete -e ssh remote_user@remote_host:/remote/dir /local/dir
上面的命令中: 3、加入cron job
在上一步中,我们已经完成了一步的同步,下面我们要加入cron job 首先,准备一下要执行的脚本,将第2步中,下述内容写入到rsync-xx,注意符合cron job的命名规则
vim rsync-xx
安装cron
启动crond服务,注意添加crond到开机启动服务[code] 我们要每3分钟检查一次,如果你准备又多个同步脚本,建议采用run-parts的方案1,如果只有一两个,可以直接在crontab写,即方案2。
[方案1]
#创建cron.min,把要执行的N个脚本拷贝过来
#更改cron table
[方案2]
#假设我们的脚本位于/path/cron.min |