rsync + crontab 实现增量同步数据

476 阅读1分钟

rsync 由于本身的特性,在第一次 rsync 备份后,以后每次都只是传内容有改变的部分,而不是全部传。所以,rsync 在做镜像方面是很不错的,只传增量,节省带宽,时间。

我们利用 rsync 这个特性,同 crontab 实现数据增量同步。

比如说我们想要备份 home 目录下的数据,五分钟备份一次,我们可以这样实现:

*/5 * * * * rsync -avP /home/ root@test1:/home/ >> /home/data_rsync.log 2>&1

当我们再 crontab 中运行 rsync 可能会遇到权限问题,比如遇到如下错误:

Permission denied, please try again.^M
Permission denied, please try again.^M
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).^M
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(600) [sender=3.0.6]

解决方案是:

在源机器上执行 ssh-keygen -t rsa 命令,生成 id_rsa.pub 公钥,然后将公钥复制到目标机器 authorized_keys 文件中。

就可以正常执行了。