rsync 数据同步服务介绍
rsync 是一种开源、快速的、多功能的、可以实现全量、增量的本地或远程数据同步备份工具,它适用于多种操作系统平台
一:rsync 的特性(功能)
1、支持拷贝特殊文件(如链接文件、设备文件)
2、拷贝时可以排除目录中目录或文件不需要同步的功能
3、可以保持源文件或目录属性不发生改变
4、可以实现全量、增量同步功能,传输效率比较高
5、可以用 scp、ssh、rsh 等方式配合使用
6、可以通过 socke 传输方式来同步数据
7、支持匿名或认证(无需系统用户)的进和模式来进行传输同步数据
二:rsync 的工作方式
1、主机本地的传输,类似于 cp 命令
2、借助于 SSH 服务来传输数据
3、以守护进程的方式来传输数据
三:rsync 同步命令格式
1、本地主机
Local: rsync [OPTION...] SRC... [DEST]
rsync -avz /etc/hosts /tmp/text/
将本地 /etc/hosts 这个文件拷贝到 /tmp/text/ 目录下
[root@Centos ~]# rsync -avz /etc/hosts /tmp/text/
sending incremental file list
hosts
sent 124 bytes received 31 bytes 310.00 bytes/sec
total size is 158 speedup is 1.02
[root@Centos ~]# cd /tmp/text/
测试命执行结果
[root@Centos text]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@Centos text]# cat /tmp/text/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
本地同步时需要注意的是,/tmp/text/ 与 /tmp/text 这两个的区别,前者是同步目录下的内容,后者是连同当前目录一同同步 **
2、借助 SSH 服务
Access via remote shell:
**Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]**
rsync -avzP -e ''ssh -p 22" root@192.168.1.3:/etc/hosts /tmp
将远程主机的 /etc/hosts 文件拷贝到 /tmp 目录
[root@Centos text]# rsync -avzP -e "ssh -p 22" root@192.168.1.3:/etc/hosts /tmp
root@192.168.1.3's password:
receiving incremental file list
hosts
183 100% 178.71kB/s 0:00:00 (xfer#1, to-check=0/1)
sent 36 bytes received 146 bytes 40.44 bytes/sec
total size is 183 speedup is 1.01
测试拉取数据
[root@Centos text]# cat /tmp/hosts
#本地目录下文件内容
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
###########www.baidu.com
[root@localhost ~]# cat /etc/hosts #远程主机目录下文件内容
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
###########www.baidu.com
[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:53:55:79
inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe53:5579/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:330 errors:0 dropped:0 overruns:0 frame:0
TX packets:243 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:33999 (33.2 KiB) TX bytes:30301 (29.5 KiB)
显示拉取数据成功,本地与远端文件内容一致
**Push: rsync [OPTION...] SRC... [USER@]HOST:DEST**
rsync -avzP /etc/hosts -e ''ssh -p 22" root@192.168.1.3:/etc/hosts
将本地的 /etc/hosts 文件同步到远程主机 /etc/hosts,同步两个文件的内数据
测试推送数据
[root@Centos text]# rsync -avzP /etc/hosts -e "ssh -p 22" root@192.168.1.3:/etc/hosts
root@192.168.1.3's password:
sending incremental file list
hosts
158 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1)
sent 124 bytes received 37 bytes 35.78 bytes/sec
total size is 158 speedup is 0.98
[root@Centos text]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
经过测试两端文件内容一致,推送数据成功
3、守护进程模式
由于相关配置没有在现在环境中没有配置,无法测试命令执行情况,后面会介绍相关配置过程与具体参数
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
rsync -avzP rsync://root@192.168.1.3:/etc/hosts /etc/hosts
将远程主机上的 hosts 文件拷贝到本地 /etc/hosts 目录
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
rsync -avzP /sever/backup rsync://root@192.168.1.2/data/bbs/
将本地的 /sever/backup 的数据同步到远程主机 /data/bbs/ 下,
四:参数介绍
-a 归档递归方式传输(相当于 rtopgDl)
-v 显示详细模式
- z 传输时进行压缩(如同传输图片时进行压缩大小提高传输速度)
- P 显示传输进度信息
–exclude 传输时排除指定的文件或目录
如有错误或其它问题,欢迎小伙伴留言评论、指正。如有帮助,欢迎点赞 + 转发分享。
欢迎大家关注民工哥的公众号:民工哥技术之路