rsync(remote synchronize)是一个开源的跨操作系统的数据同步工具,可应用于 LAN/WAN/本地 等各种场景下的快速同步文件。rsync有三种工作模式:本地模式、通道模式、服务模式。本文只是通道模式下结合异机之间的同步备份的场景进行简单实践。

安装

一般只需要在目标主机安装rsync程序:

CentOS
yum install -y rsync
MacOS
brew install -y rsync

断点续传

当传输大文件时,使用scp每次网络断掉后都要重新开始,这时,断点续传这个功能就非常实用。

rsync -P -e ssh USER@IP:SRC_FILE DEST_FILE

关键参数说明

-P 断点续传,显示进度
-e 替代rsh的shell程序

目录同步

异机备份时很有用。

rsync -avztLP --delete -e ssh 1.xxx:/var/opt/backups /var/opt/backups

关键参数说明

-a --archive 归档模式
-v --verbose 详细输出模式,定时任务或者后台运行的话可以去掉
-z --compose 传输过程中压缩处理
-t --times 保持 mtime 属性,rsync默认用"quick check"算法决定哪些文件需要增量传输。此算法只比较文件的大小和 mtime,即使其它属性不同也会认为它们是完全相同的文件,从而不需要增量传输,建议任何时候都加上"-t",否则目标文件 mtime 会设置为系统时间,导致下次更新检查出 mtime 不同而导致增量传输无效
-L --copy-links:如果文件是软链接,拷贝软链接指向的文件
-r --recursive:以递归模式拷贝目录
   --delete  源目录不存在而目标目录存在的文件将被删除
   1.xxx     ssh服务器别名
Note
文件名后面是否带 /,含义不同,带 / 是将目录下的文件同步到目标文件夹下,不带 / 是将该目录同步到目标文件夹下。