Rsync服务安装部署及使用说明
01、rsync服务介绍
属于一款实现全量及增量复制同步的软件工具,如下图,如果文件没有发生变化,再次传输文件时,文件传输列表为空,发送的大小也比传文件时小,说明了rsync增量同步的功能。

  1. rsync服务命令简单应用(相当于cp、scp、rm、ls)
2.  ①. rsync == cp
 [root@backup ~]# # rsync == cp效果
 [root@backup ~]# cp -a /etc/hosts /tmp/
 [root@backup ~]# ll /tmp/
 total 4
 -rw-r–r--. 1 root root 352 Jan 27 01:15 hosts
 [root@backup ~]# rsync -a /etc/sysconfig/network /tmp/
 [root@backup ~]# ll /tmp/
 total 8
 -rw-r–r--. 1 root root 352 Jan 27 01:15 hosts
 -rw-r–r-- 1 root root 31 Jan 26 18:16 network
②. rsync == scp
 [root@backup ~]# scp -rp /tmp/ 172.16.1.31:/tmp/
 The authenticity of host ‘172.16.1.31 (172.16.1.31)’ can’t be established.
 RSA key fingerprint is 5b:9b:e6:79:a9:95:4f:be:06:41:e3:bb:7a:12:ee:b4.
 Are you sure you want to continue connecting (yes/no)? yes
 Warning: Permanently added ‘172.16.1.31’ (RSA) to the list of known hosts.
 root@172.16.1.31’s password:
 network 100% 31 0.0KB/s 00:00
 hosts 100% 352 0.3KB/s 00:00
 [root@backup ~]# ll /tmp/
 total 8
 -rw-r–r--. 1 root root 352 Jan 27 01:15 hosts
 -rw-r–r-- 1 root root 31 Jan 26 18:16 network
 [root@backup ~]# rsync -rp /tmp/ 172.16.1.31:/tmp/
 root@172.16.1.31’s password:
 [root@backup ~]#
 说明:同步数据时,/tmp/目录后有/信息,表示将目录下面的数据内容包括子目录进行备份同步
同步数据时,/tmp目录后没有/信息,表示将/tmp目录及目录下面的数据内容进行备份同步: rsync -rp /tmp 172.16.1.31:/tmp/
③ rsync == rm
 说明:rsync实现删除目录中数据内容过程,就将一个空目录和一个有数据的目录进行同步, 最终,会将有数据的目录中的文件进行清空
 [root@backup ~]# mkdir /null
 [root@backup ~]# rsync --delete /null/ /tmp/
 rsync: --delete does not work without -r or -d.
 rsync error: syntax or usage error (code 1) at main.c(1422) [client=3.0.6]
 [root@backup ~]#
 [root@backup ~]# rsync -r --delete /null/ /tmp/
 [root@backup ~]# ll /tmp/
 total 0
④ rsync == ls
 [root@backup ~]# ls /etc/hosts
 /etc/hosts
 [root@backup ~]# ls -l /etc/hosts
 -rw-r–r--. 2 root root 352 Jan 27 01:15 /etc/hosts
 [root@backup ~]# rsync /etc/hosts
 -rw-r–r-- 352 2018/01/27 01:15:59 hosts
 03、rsync的7大特性04 rsync软件工作方式
 ①. 本地数据备份方式
 Local: rsync [OPTION…] SRC… [DEST]
 rsync — 数据备份传输命令
 option — 可以输入一下和rsync传输数据有关的参数
 src — 要进行备份的数据(文件/目录)
 dest — 将数据信息备份到什么位置(相应路径中)
 实践练习:
 [root@backup ~]# rsync -a /etc/hosts /tmp/ok.txt
 [root@backup ~]# ll /tmp/ok.txt
 -rw-r–r-- 1 root root 352 Jan 27 01:15 /tmp/ok.txt
 ②. 远程数据备份方式
 Access via remote shell:
 Pull: rsync [OPTION…] [USER@]HOST:SRC… [DEST]
 Push: rsync [OPTION…] SRC… [USER@]HOST:DESTpull方式语法说明:
 rsync — 数据备份传输命令
 option — 可以输入一下和rsync传输数据有关的参数
 [USER@]HOST: — 需要指定以什么用户身份登录到远程主机,
 如果省略USER信息,表示以当前用户身份进行登录
 登录主机地址或域名信息
 SRC — 指定远程主机要传输过来到本地的数据信息
 dest — 将数据保存到本地的什么路径中
 例: rsync -a root@172.16.1.41:/etc/hosts /tmp
 push方式语法说明:
 rsync — 数据备份传输命令
 option — 可以输入一下和rsync传输数据有关的参数
 [USER@]HOST: — 需要指定以什么用户身份登录到远程主机,
 如果省略USER信息,表示以当前用户身份进行登录
 登录主机地址或域名信息
 SRC — 指定本地主机要传输到远程主机的数据
 dest — 将本地数据保存到远端的什么路径中③. 守护进程传输模式
 Access via rsync daemon:
 Pull: rsync [OPTION…] [USER@]HOST::SRC… [DEST]
 rsync [OPTION…] rsync://[USER@]HOST[:PORT]/SRC… [DEST]
 Push: rsync [OPTION…] SRC… [USER@]HOST::DEST
 rsync [OPTION…] SRC… rsync://[USER@]HOST[:PORT]/DESTpull:rsync [OPTION...] [USER@]HOST::SRC... [DEST]
[USER@]HOST::       --- 指定远程连接的认证用户
SRC                 --- 指定相应的模块信息
[DEST]              --- 将远程数据保存到本地的路径信息

Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
[USER@]HOST::       --- 指定远程连接的认证用户
SRC                 --- 指定本地要进行推送的数据信息
[DEST]              --- 远程进行保存数据的模块信息注意:rsync传目录时,要加-a参数,传文件时,不加a参数。
05 rsync守护进程部署流程
 1)服务端部署流程
 第一里程:安装软件
 离线安装:下载地址:https://rsync.samba.org/ 
 把源码包上传到服务器,解压,进行程序目录,执行以下命令:
 ./configure --prefix=/usr/local/rsync/
 make $$ make install
 在线安装: yum install rsync第二里程:编写配置文件
 vim /etc/rsyncd.confuid = rsync
  gid = rsync
  use chroot = no
  max connections = 200
  timeout = 300
  pid file = /var/run/rsyncd.pid
  lock file = /var/run/rsync.lock
  log file = /var/log/rsyncd.log
  ignore errors
  read only = false
  list = false
  hosts allow = 172.16.1.0/24
  hosts deny = 0.0.0.0/32
  auth users = rsync_backup
  secrets file = /etc/rsync.passwordfake super = yes
 [backup] —模块名,模块以上的参数是全局参数,模块以内的参数只对该模块生效
 comment = “backup dir by oldboy”
 path = /backup
 read only = true
 [nfs]
 comment = “backup dir by oldboy”
 path = /nfs第三个里程:创建备份目录管理用户
  useradd rsync -M -s /sbin/nologin
  第四个里程:创建备份目录
  mkdir /backup
  chown -R rsync.rsync /backup
  第五个里程:创建认证文件(配置文件里定义了认证文件的名称      secrets file = /etc/rsync.password )文件的权限必须是600
  echo "rsync_backup:oldboy123"  >>/etc/rsync.password
  chmod 600 /etc/rsync.password
  第六个里程:启动rsync服务
  rsync --daemon
  它的进程号是873:[root@backup etc]# netstat -alntup|grep rsync
 tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 3192/rsync
 tcp6 0 0 :::873 ::😗 LISTEN 3192/rsync
 2)客户端部署流程
 第一个里程:安装软件
 参考服务端的安装
 第二个里程:创建认证密码文件(必须放在etc下,名称也要和服务端的保持一致,注意文件内容与服务端的有差异,客户端只需输入密码,不用输入用户名)
 echo “oldboy123” >>/etc/rsync.password(文件的权限必须是600)
 chmod 600 /etc/rsync.password
 第三个里程:进行数据备份测试
 [root@nfs01 tmp]# rsync -vz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
 sending incremental file list
 hostssent 189 bytes  received 27 bytes  432.00 bytes/sec
  total size is 352  speedup is 1.6306 rsync服务扩展应用
 ① 守护进程多模块功能配置
 第一步:修改配置文件
 vim /etc/rsyncd.conf
 [backup01]
 comment = “backup dir by oldboy”
 path = /backup
 [backup02]
 comment = “backup dir by oldboy”
 path = /backup02第二步:创建多模块目录
 mkdir /backup02
 chown -R rsync.rsync /backup02
 
 第三步:重启服务程序
 killall rsync
 rsync --daemon
 
 第四步:进行测试检查② 守护进程的排除功能实践
 第一种数据备份排除方式:–exclude
 rsync -avz /test_dir/ --exclude=b --exclude=d rsync_backup@172.16.1.41::backup01 --password-file=/etc/rsync.password
 rsync -avz /test_dir/ --exclude={b,d} rsync_backup@172.16.1.41::backup01 --password-file=/etc/rsync.password
 rsync -avz /test_dir/ --exclude={b…d} rsync_backup@172.16.1.41::backup01 --password-file=/etc/rsync.password
 第二种数据备份排除方式:–exclude-from=file
 rsync -avz /test_dir/ --exclude-from=./exclude_file.txt rsync_backup@172.16.1.41::backup01 --password-file=/etc/rsync.password③ 守护进程来创建备份目录
 rsync -avz /etc/hosts --exclude-from=./exclude_file.txt rsync_backup@172.16.1.41::backup01/sa/ --password-file=/etc/rsync.password
 rsync -avz /etc/hosts --exclude-from=./exclude_file.txt rsync_backup@172.16.1.41::backup01/dev/ --password-file=/etc/rsync.password
 rsync -avz /etc/hosts --exclude-from=./exclude_file.txt rsync_backup@172.16.1.41::backup01/dba/ --password-file=/etc/rsync.password
 会自动创建sa、dev、dba目录
 ④ 守护进程的访问控制配置
 三种情况:
 1. 只有白名单,白名单网段或主机信息允许。其余阻止
 2. 只有黑名单,黑名单网段或主机信息阻止,其余允许
 3. 有黑名单也要白名单,白名单网段或主机信息允许,黑名单网段或主机信息阻止,其余允许
 建议只选择前两种方式配置
 hosts allow = 172.16.1.0/24
 hosts deny = 0.0.0./32
 ⑤ 守护进程无差异同步配置
 我有的,你也有;我没有的,你也不能有
 rsync -avz /test_dir/ --delete rsync_backup@172.16.1.41::backup01 --password-file=/etc/rsync.password
 说明:一定要谨慎使用,否则可能会清空备份目录;
 如果要快速清空目录数据,也可以使用无差异同步清空
 ⑥ 守护进程的列表功能配置
 list = false
 说明:表示是否列表显示rsync服务端所有模块信息
 [root@nfs01 test_dir]# rsync rsync_backup@172.16.1.41::
 backup01 “backup dir by oldboy”
 backup02 “backup dir by oldboy”