开笔
背景(废话)
做接口服务端,基本上都会使用负载均衡来保证后台的可用性,做负载均衡有很多方法,有硬负载,也有软负载,但负载均衡的后面,就是我们的应用服务,一般都是几台硬件配置相似的,应用服务完全相同的机器。当我们要为这几台机器部署完全相同的应用服务,并维护和更新这几台机器上的应用服务,自然就遇到最直接的数据(包括服务)同步的问题,笔者就是遇到这个问题,才想办法,研究怎么优雅的解决这个问题。
当然,数据同步的场景包含笔者所描述的,但不仅限于此。
概述
rsync 是一款快速并多样的异地文件拷贝工具。具备通过远程脚本或者远程rsync进程来实现本地和远程主机间拷贝的能力。提供丰富的控制选项和灵活多样拷贝的权限控制,因增量拷贝闻名,广泛地用于 备份和镜像,以及作为升级版本的拷贝命令使用。rsync 一个命令行工具,若要用它,首先得对命令行有一定的了解。
总而言之:rsync 是一款 高效的、通用的拷贝、备份、同步数据(文件或者文件夹)工具,可以是本地的、远程的,夸目录、夸磁盘亦或是夸机器,他的高效来自于能够做到增量同步。
安装
在部分 Linux 发行版本中,rsync 是默认已经安装的,为确认是否已经安装,可以查看机器中是否已经安装这几个软件:
- rsync
- xinetd
- ssh
没有的话请自行安装(yum 或者 apt-get 等等).
使用
基本语法
rsync options source destination
具体有那些选项的话,我们不妨执行man rsync
看看。
本地拷贝
rsync -z ~/test.txt /Data/backup/
远程拷贝
rsync -zvz route root@jiafan.net:/backup/
使用ssh
其他高级选项
优势和特点(可看可不看)
- 高效的远程拷贝和同步文件的工具
- 支持 拷贝链接、设备、所有权、所属组和权限
- 比scp更快:基于 远程更新协议(remote-update protocol),从而具备增量拷贝技能
- 低带宽消耗:传输前压缩,传输后解压