rsync是什么?
rsync是可以实现全量和增量的本地或远程数据同步备份工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。适用于unix,linux,windows等多种操作系统。
简介:
rsync具有本地和远程两台主机之间数据快速复制同步镜像,远程备份功能。从同步效率上看,rsync更胜一筹。
- rsync相当于scp,cp,rm。但是优于每一个,因为他们只能每次拷贝完整的数据,不能实现增量备份,而rsync可以。
- rsync同步镜像时,通过具有独特的“quick check”算法:
- 仅同步大小或者最后修改时间发生变化的文件或目录
- 也可根据权限和属主等属性的变化进行同步,要加上相应参数
- 可同步同一文件内增加的内容
rsync三种工作方式:
- 单个本机之间数据传输,类似于cp命令。
- 借助rcp,ssh通道传输数据,类似于scp。
- 以守护进程(socket)方式传输数据。
本地传输模式
语法:rsync [-option] souce destation
常用选项:
-v | 显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息 |
---|---|
-P | 显示文件传输的进度信息 |
-a --archive | 归档模式,表示递归传输并保持文件属性。 |
-r --recursive | 递归到目录中去。 |
-t --times | 保持mtime属性。强烈建议任何时候都加上"-t",否则目标文件mtime会设置为系统时间,导致下次更新 :检查出mtime不同从而导致增量传输无效。 |
-o --owner | 保持owner属性(属主)。 |
-g --group | 保持group属性(属组)。 |
-p --perms | 保持perms属性(权限,不包括特殊权限)。 |
-D | 是"–device --specials"选项的组合,即也拷贝设备文件和特殊文件。 |
-l --links | 如果文件是软链接文件,则拷贝软链接本身而非软链接所指向的对象。 |
-z | 传输时进行压缩提高效率。 |
–delete | 以SRC为主,对DEST进行同步。多则删之,少则补之。注意"–delete"是在接收端执行的,所以它是在 |
-e | 指定所要使用的远程shell程序,默认为ssh。 |
例:
将/etc目录备份到当前目录,备份过来的是etc目录
rsync -azvP /etc ./
将/etc目录下内容备份到当前目录,备份过来的是etc目录下文件
rsync -azvP /etc ./
-azv选项备份,个属性不变
当前参数只同步增量
[root@fei /]# cd /etc/
[root@fei etc]# touch aaa
[root@fei etc]# cd /tmp/
[root@fei tmp]# rsync -azvP /etc ./
sending incremental file list
etc/
etc/aaa
0 100% 0.00kB/s 0:00:00 (xfr#1, ir-chk=1182/1192)
sent 54,058 bytes received 656 bytes 109,428.00 bytes/sec
total size is 31,229,214 speedup is 570.77
借助ssh通道在不同主机之间传输数据
打包当前机器/etc发送到192.168.126.131主机/tmp目录下。
rsync -azvP -e 'ssh -p 22' /etc root@192.168.126.131:/tmp
-e :指定协议,默认ssh,可以不用指定
反之则可以拉取
rsync -azvP -e 'ssh -p 22' root@192.168.126.131:/etc /tmp
以守护进程(socket)方式传输数据
搭建环境:
配置服务端:
- 确认安装rsync------rpm -qa rsync
- 修改配置文件------/etc/rsync