Linux系统rsync数据同步服务介绍

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

转载声明:转载请注明出处,本技术博客是本人原创文章

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> Linux系统rsync数据同步服务介绍

Linux系统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传输时排除指定的文件或目录

Linux系统rsync数据同步服务介绍
本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

转载声明:转载请注明出处,本技术博客是本人原创文章

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> Linux系统rsync数据同步服务介绍


 上一篇
Linux系统SSH服务之 sshkey密钥认证实战 Linux系统SSH服务之 sshkey密钥认证实战
Linux系统SSH服务之 sshkey密钥认证实战 前面介绍了SSH服务一些特性及其简单配置,在实际的生产环境中,经常会用到sshkey密钥认证实行数据分发数据等操作,还可以批量操作内网服务器,实行免密认证进行推送分发数据 实际生产结构拓
2021-04-05
下一篇 
Linux系统rsync实战操作 Linux系统rsync实战操作
Linux系统rsync实战操作 前面介绍了一些关于rsync的功能与一些具体的命令格式、参数的使用意义等,今天我们来聊一聊整个实际生产过程中的实战操作过程 今天介绍的是第三种模式——以守护进程的模式传输数据 一:整体环境 备份服务器端(B
2021-04-05