Rsync守护进程部署和实践

Rsync守护进程部署和实践

Rsync服务器为服务端,eth0:10.0.0.41,eth1:172.16.1.41
NFS服务器为客户端,eth0:10.0.0.31,eth1:172.16.1.31

(一)服务端部署流程

检查软件是否安装

[root@backup ~]# rpm -qa |grep rsync
rsync-3.0.6-12.el6.x86_64
# 如果没有安装 运行 yum install rsync -y 

编写配置文件(系统默认没有该配置文件,需要自己创建)

[root@backup ~]# vim /etc/rsyncd.conf
#rsync_config
#created by maxu an 20191020
##rsyncd.conf   start##

uid=rsync                           #指定rsync服务运行时候,向磁盘读取和写入的操作者                   
gid=rsync                           #指定rsync服务运行的时候,向磁盘进行读取和写入操作的操作者
use chroot=no                       #进行数据同步存储时,安全相关参数,默认内网进行数据同步,可以关闭
max connections=200                 #定义向备份服务器进行数据存储时的最大并发连接数
timeout=300                         #定义与备份服务器建立网络连接,在多长时间没有数据传输时,就释放连接
pid file=/var/run/rsyncd.pid        #服务程序运行时,会将进程的pid信息存储到一个指定pid文件中
lock file=/var/run/rsync.lock       #定义锁文件,主要配合max connections参数使用,当达到最大参数时,禁止访问
log file=/var/log/rsyncd.log        #定义服务的日志文件保存路径
ignore errors                       #在进行数据传输备份时候,忽略一些I/O产生的传输错误    
read only=false                     #设置对备份目录具有读写权限,false即将只读模式关闭
list=false                          #确认是否可以将服务配置的模块信息在客户端展示出来
hosts allow=172.16.1.0/24           #设置备份目录允许进行网络数据备份的主机地址和网段信息,即设置白名单
hosts deny=0.0.0.0/32               #设置备份目录禁止进行网络数据备份的主机地址和网段信息,即设置黑名单
auth user=resync_backup             #指定访问备份数据目录的认证用户信息,为虚拟用户,不需要创建
secrets file=/etc/rsync.passwd      #设置访问备份数据目录进行认证用户的密码文件信息,文件有认证用户的密码信息
#模块信息
[backup]                            #指定备份目录的模块名称信息
comment="backup dir by oldboy"      #注释:对文件的说明
path=/backup                        #指定数据备份目录信息

创建备份目录管理用户

[root@backup ~]# useradd rsync -M -s /sbin/nologin

创建备份目录

[root@backup ~]# mkdir /backup                      # 创建备份目录
[root@backup ~]# chown -R rsync.rsync /backup/      # 目录所有者设置 

创建认证文件

[root@backup ~]# echo 'rsync_backup:oldboy123' >>/etc/rsync.password #将认证用户的密码放入文件中
[root@backup ~]# chmod 600 /etc/rsync.password  #设置权限,避免所有人查看认证文件

启动rsync服务

[root@backup ~]# rsync --daemon
[root@backup ~]# ps -ef |grep rsync             #查看进程是否运行
root       1854      1  0 13:33 ?        00:00:00 rsync --daemon
root       1856   1225  0 13:33 pts/0    00:00:00 grep --color=auto rsync
[root@backup ~]# netstat -lntup |grep rsync     #查看端口信息(rsync默认端口873)
tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      1854/rsync          
tcp        0      0 :::873                      :::*                        LISTEN      1854/rsync

(二)客户端部署流程

确认客户端是否安装软件

[root@nfs01 ~]# rpm -qa |grep rsync
rsync-3.0.6-12.el6.x86_64
# 如果没有安装 运行 yum install rsync -y

创建认证密码文件

[root@nfs01 ~]# echo 'oldboy123' >>/etc/rsync.password  #密码与服务端一致
[root@nfs01 ~]# chmod 600 /etc/rsync.password           #密码文件权限设置

(三)进行数据备份测试

测试:将NFS服务器下的/etc目录及目录下所有文件备份到备份服务器下backup模块下

[root@nfs01 ~]# rsync -avz /etc rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password 
sending incremental file list
hosts

sent 185 bytes  received 27 bytes  424.00 bytes/sec
total size is 351  speedup is 1.66

在备份服务器中查看结果

[root@backup ~]# ll /backup/
total 4
drwxr-xr-x 78 rsync rsync 4096 Oct 23 13:51 etc

(四)rsync备份扩展功能实践

1.多模块功能实践

服务端修改配置文件,增加2个模块,backup01,backup02

[root@backup ~]# vim /etc/rsyncd.conf
...
[backup01]
comment="backup dir by oldboy"
path=/backup01
[backup02]
comment="backup dir by oldboy"
path=/backup02

创建模块的目录,然后变更目录管理者为rsync

[root@backup ~]# mkdir /backup01 /backup02
[root@backup ~]# chown -R rsync.rsync /backup01 /backup02

重启服务程序

[root@backup ~]# killall rsync
[root@backup ~]# rsync --daemon

测试:分别把NFS服务器上的/etc/hosts文件备份到备份服务器上的backup01、backup02模块下

[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup01 --password-file=/etc/rsync.password 
sending incremental file list
hosts

sent 185 bytes  received 27 bytes  424.00 bytes/sec
total size is 351  speedup is 1.66
[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup02 --password-file=/etc/rsync.password 
sending incremental file list
hosts

sent 185 bytes  received 27 bytes  141.33 bytes/sec
total size is 351  speedup is 1.66

备份服务器上查看结果

[root@backup ~]# ll /backup01
total 4
-rw-r--r-- 1 rsync rsync 351 Oct 22 18:52 hosts
[root@backup ~]# ll /backup02
total 4
-rw-r--r-- 1 rsync rsync 351 Oct 22 18:52 hosts

2.排除不需要的数据

NFS服务器上创建环境

[root@nfs01 ~]# mkdir /test
[root@nfs01 ~]# touch /test/{a..d}.txt
[root@nfs01 ~]# ll /test/
total 0
-rw-r--r-- 1 root root 0 Oct 23 14:45 a.txt
-rw-r--r-- 1 root root 0 Oct 23 14:45 b.txt
-rw-r--r-- 1 root root 0 Oct 23 14:45 c.txt
-rw-r--r-- 1 root root 0 Oct 23 14:45 d.txt

要求:备份/test 目录下的a.txt和c.txt到备份服务器上的/backup下
方法1:通过–exclude排除不要的文件,使用与文件量少的时候

[root@nfs01 ~]# rsync -avx /test/ --exclude={b.txt,d.txt} rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password 
sending incremental file list
./
a.txt
c.txt

sent 127 bytes  received 49 bytes  352.00 bytes/sec
total size is 0  speedup is 0.00

查看结果

[root@backup ~]# ll /backup
total 0
-rw-r--r-- 1 rsync rsync 0 Oct 23 14:45 a.txt
-rw-r--r-- 1 rsync rsync 0 Oct 23 14:45 c.txt

方法2:exclude-from=file来排除
首先创建一个文件,把需要排除的文件名写入这个文件中,注意该文件自身写入,否则同步时会把这个文件也同步过去;此方法,可以利用find或其他方法,把匹配到不需要的文件名全部输出到这个文件夹中,然后进行传输备份

[root@nfs01 ~]# vim /test/exclude.txt
b.txt
d.txt
exclude.txt

在NFS服务器执行操作

[root@nfs01 ~]# rsync -avz /test/ --exclude-from=/test/exclude.txt rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password 
sending incremental file list
./
a.txt
c.txt

sent 125 bytes  received 49 bytes  348.00 bytes/sec
total size is 0  speedup is 0.00

查看结果

[root@backup ~]# ll /backup
total 0
-rw-r--r-- 1 rsync rsync 0 Oct 23 14:45 a.txt
-rw-r--r-- 1 rsync rsync 0 Oct 23 14:45 c.txt

3.备份时创建目录

直接在模块后面接上需要创建的目录即可,目录后‘/’不能省略

[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup/sa/ --password-file=/etc/rsync.password
[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup/dev/ --password-file=/etc/rsync.password
[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup/dba/ --password-file=/etc/rsync.password

查看结果

[root@backup ~]# tree /backup
/backup
├── dba
│   └── hosts
├── dev
│   └── hosts
└── sa
    └── hosts

3 directories, 3 files

4.守护进程的访问控制配置(黑白名单)

首先在默认情况下,内网和外网的IP都是可以进行备份传输

[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup01 --password-file=/etc/rsync.password
[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@10.0.0.41::backup02 --password-file=/etc/rsync.password

查看结果

[root@backup ~]# ll /backup01 /backup02
/backup01:
total 4
-rw-r--r-- 1 rsync rsync 351 Oct 22 18:52 hosts

/backup02:
total 4
-rw-r--r-- 1 rsync rsync 351 Oct 22 18:52 hosts
1).只有白名单,白名单网段或主机信息允许,其余阻止。

修改配置文件,只允许内网IP进行备份

[root@backup ~]# vim /etc/rsyncd.conf 
...
hosts allow=172.16.1.0/24
#hosts deny=0.0.0.0/32
...

#保存后重启服务
[root@backup ~]# killall rsync
[root@backup ~]# rsync --daemon

再次备份传输数据,10.0.0.1这个ip已经无法传输备份数据了

[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup01 --password-file=/etc/rsync.password 
sending incremental file list
hosts

sent 185 bytes  received 27 bytes  424.00 bytes/sec
total size is 351  speedup is 1.66
[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@10.0.0.41::backup02 --password-file=/etc/rsync.password 
@ERROR: Unknown module 'backup02'
rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
2).只有黑名单,黑名单网段或主机信息阻止,其他允许。

修改配置文件,禁止10.0.0.0/24网段访问

[root@backup ~]# vim /etc/rsyncd.conf
...
#hosts allow=172.16.1.0/24
#hosts deny=0.0.0.0/32
hosts deny=10.0.0.0/24
...

#保存后重启服务
[root@backup ~]# killall rsync
[root@backup ~]# rsync --daemon

再次传输备份数据,10.0.0.41无法进行数据传输备份

[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup01 --password-file=/etc/rsync.password 
sending incremental file list
hosts

sent 185 bytes  received 27 bytes  424.00 bytes/sec
total size is 351  speedup is 1.66
[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@10.0.0.41::backup02 --password-file=/etc/rsync.password 
@ERROR: Unknown module 'backup02'
rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
3).有白名单,也有黑名单的,白名单网段或主机信息允许,黑名单网段或主机信息阻止,其余允许,建议只选择前两种方式配置。

修改配置文件

[root@backup ~]# vim /etc/rsyncd.conf
...
hosts allow=10.0.0.0/24
hosts deny=172.16.1.0/24
...

#保存后重启服务
[root@backup ~]# killall rsync
[root@backup ~]# rsync --daemon

再次传输数据备份,可以看到黑名单的IP不能传输备份,白名单的可以传输备份

[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup01 --password-file=/etc/rsync.password
@ERROR: Unknown module 'backup01'
rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@10.0.0.41::backup02 --password-file=/etc/rsync.password
sending incremental file list
hosts

sent 185 bytes  received 27 bytes  424.00 bytes/sec
total size is 351  speedup is 1.66

还有一种特殊情况:某个IP被同时写进黑名单和白名单,此时白名单优先于白名单,建议不要使用此配置方法


5.守护进程无差异同步配置

无差异同步就是,我有的数据你必须有,而且我没有的数据你也不能有
查看备份服务器的/backup目录和NFS服务器的/test目录,如果自己创建文件或目录,记得把/backup目录和目录下文件的所有者替换为rsync,否则后面会出错

#备份服务器
[root@backup ~]# tree /backup
/backup
├── a.txt
├── c.txt
├── hosts
├── oldboy
│   ├── ad.txt
│   └── test.txt
└── test
    └── a.txt
2 directories, 6 files

#NFS服务器    
[root@nfs01 ~]# tree /test/
/test/
├── a.txt
├── b.txt
├── c.txt
├── d.txt
└── exclude.txt    

把NFS服务器/test目录下的数据通过无差异备份到backup模块下

[root@nfs01 ~]# rsync -avz /test/ --delete rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
sending incremental file list
./
deleting test/a.txt
deleting test/
deleting oldboy/test.txt
deleting oldboy/ad.txt
deleting oldboy/
deleting hosts
b.txt
d.txt
exclude.txt

sent 226 bytes  received 68 bytes  588.00 bytes/sec
total size is 24  speedup is 0.08

查看两边目录一致性,结果备份服务器下的多余文件被删除,剩余文件数据与/test下一致,这就是无差异备份,使用该方法时一定注意文件是否可以删除,此方法可以利用空目录无差异备份到一个需要删除的大目录下,这样可以快速清空一个目录

#备份服务器下的/backup目录
[root@backup ~]# tree /backup
/backup
├── a.txt
├── b.txt
├── c.txt
├── d.txt
└── exclude.txt

0 directories, 5 files
#NFS服务器下/test目录
[root@nfs01 ~]# tree /test/
/test/
├── a.txt
├── b.txt
├── c.txt
├── d.txt
└── exclude.txt

0 directories, 5 files

6.守护进程的列别功能配置(显示模块)

列别功能就是显示出配置文件中模块
修改配置文件

[root@backup ~]# vim /etc/rsyncd.conf 
...
#list=false
list=ture
...
#保存重启服务
[root@backup ~]# killall rsync
[root@backup ~]# rsync --daemon

查看模块

[root@nfs01 ~]# rsync rsync_backup@172.16.1.41::
backup         	"backup dir by oldboy"
backup01       	"backup dir by oldboy"
backup02       	"backup dir by oldboy"

list=ture是一个不安全的操作,容易被攻击者清空模块下的备份文件,所以一般不会开启

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值