工欲善其事,必先利其器。
一、概念
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它不仅可以远程同步数据(类似于scp命令),还可以本地同步数据(类似于cp命令)。不同于cp或scp的一点是,使用rsync命令备份数据时,不会直接覆盖以前的数据(如果数据已经存在),而是先判断已经存在的数据和新数据的差异,只有数据不同时才会把不相同的部分覆盖。
二、使用
本地同步
- 本地之间备份同步
rsync -avz /home/www/rsync_test /www
- 本地之间备份同步
远程同步
- 本地文件上传到远程服务器:
rsync -avz -e "ssh -i /root/xxx.pem" /home/www/rsync_test root@ip:/home/www/
- 远程服务器文件下载到本地:
rsync -avz -e "ssh -i /root/xxx.pem" root@ip:/home/www/test /root
- 跨服务器同步(无需本地中转):
rsync -avz -e "ssh -i /root/xxx.pem -p 22" root@ip1:/home/source/ root@ip2:/home/dest
- The source and destination cannot both be remote.
- 本地文件上传到远程服务器:
高级使用
- 指定秘钥
- 增量备份
- 排除文件
- 包含特定
- 限速传输
- 校验模式
- 保留符号链接
三、扩展
- sync
- ansible