环境准备
服务器
- IP地址: 11.0.1.192
- 主机名: backup
客户端
- IP地址: 11.0.1.193
- 主机名: nfs01
- IP地址: 11.0.1.198
- 主机名: web01
rsync守护进程部署方式
rsync守护进程客户端配置
- 下载并安装所需软件
[root@backup ~]#rpm -qa | grep rsync [root@backup ~]#yum -y install rsync - 编辑配置文件
[root@backup ~]# man rsync [root@backup ~]# vim /etc/rsyncd.conf ? uid = rsync ? ? ? ? ? ? ? #指定管理备份目录的用户 远端命令使用rsync访问共享目录 gid = rsync ? ? ? ? ? ? ? #指定管理备份目录的用户组 use chroot = no ? ? ? ? ? #和安全相关的配置 max connections = 200 ? ? #最大连接数 只能同时有200个客户端连接到备份服务器 timeout = 300 ? ? ? ? ? ? #超时时间(单位秒)(不进行备份多长时间断开) pid file = /var/run/rsyncd.pid #记录进程号码信息(1.让程序快速停止进程 2.判断一个服务是否正在运行) lock file = /var/run/rsync.lock ? ? ? ? ? #锁文件 log file = /var/log/rsyncd.log ? ? ? ? ? ? #rsync服务的日志文件,用于排错分析问题,显示出错信息 fake super = yes ? #在新版本中必须加这个 ignore errors ? ? ? ? ? #忽略错误程序 read only = false ? ? ? #是否只读(这里是假,表示能写入)指定备份目录可读可写 list = false ? ? ? ? ? ? #使客户端可以查看服务端的模块信息 hosts allow = 172.16.2.0/24 ? ? ? #准许访问rsync服务器客户范围(白名单) #hosts deny = 0.0.0.0/32 ? ? ? ? ? #禁止访问rsync服务器客户范围(黑名单) auth users = rsync_backup ? ? ? ? #不存在的用户,只用于认证(指定认证用户) #设置进行连接认证的密钥文件: secrets file = /etc/rsync.password ? #认证时密钥文件(指定认证用户密码文件 用户名称:密码信息) #模块信息: [backup] comment = "backup" path = /backup/web ? ? ? #模块对应的位置(路径)(模块中配置参数,知道备份目录) ? ? ? rsync配置文件可直接粘贴至配置文件 uid = 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 fake super = yes 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.password [backup] comment = "backup" path = /backup/web ? ? 重启rsync服务 [root@backup ~]# systemctl restart rsyncd 查看rsync状态 [root@backup ~]# systemctl status rsyncd ● rsyncd.service - fast remote file copy program daemon ? Loaded: loaded (/usr/lib/systemd/system/rsyncd.service; disabled; vendor preset: disabled) ? Active: active (running) since Thu 2025-11-13 03:21:15 EST; 14s ago Main PID: 6989 (rsync) ? CGroup: /system.slice/rsyncd.service ? ? ? ? ? └─6989 /usr/bin/rsync --daemon --no-detach ? Nov 13 03:21:15 backup systemd[1]: Started fast remote file copy program daemon. 查看rsync端口信息(默认873) [root@backup ~]# netstat -lntup | grep 873 tcp ? ? ? 0 ? ? 0 0.0.0.0:873 ? ? ? ? ? ? 0.0.0.0:* ? ? ? ? ? ? ? LISTEN ? ? 6989/rsync tcp6 ? ? ? 0 ? ? 0 :::873 ? ? ? ? ? ? ? ? :::* ? ? ? ? ? ? ? ? ? LISTEN ? ? 6989/rsync [root@backup ~]# ll /var/run/rsyncd.pid -rw-r--r-- 1 root root 5 Nov 13 03:21 /var/run/rsyncd.pid [root@backup ~]# cat /var/run/rsyncd.pid 6989 查看rsync的进程号 [root@backup ~]# ps -ef | grep rsync root ? ? ? 6989 ? ? 1 0 03:21 ? ? ? ? 00:00:00 /usr/bin/rsync --daemon --no-detach root ? ? ? 7034 ? 6791 0 03:23 pts/0 ? 00:00:00 grep --color=auto rsync ? - 创建rsync服务的虚拟用户
创建一个rsync的虚拟用户,只被程序使用 [root@backup ~]# useradd rsync -M -s /sbin/nologin [root@backup ~]# id rsync uid=1002(rsync) gid=1002(rsync) groups=1002(rsync) - 生成备份服务认证密码文件
给指定认证用户设置密码 [root@backup ~]# echo "rsync_backup:qianqian123." > /etc/rsync.password [root@backup ~]# cat /etc/rsync.password rsync_backup:qianqian123. 给指定认证用户密码文件设置权限 [root@backup ~]# chmod 600 /etc/rsync.password - 建立备份目录,并将该目录及其下所有文件的权限更改为rsync
[root@backup ~]# mkdir /backup/web [root@backup ~]# chown -R rsync.rsync /backup/ ? ? ? #一定要将文件属主和属组改成rsync用户 - 启动rsync守护进程,并验证其是否成功运行
[root@backup ~]# systemctl start rsyncd [root@backup ~]# systemctl enable rsyncd [root@backup ~]# systemctl status rsyncd
需掌握rsync守护进程的命名规则
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
SRC:要推送备份数据信息
[USER@]:指定认证用户信息
HOST:指定远程主机的IP地址或者主机名称
::DEST备份服务器的模块信息
? ? rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
rsync守护进程服务端配置(客户端视角)
- 在客户端创建一个安全文件
[root@nfs01 ~]# echo "qianqian123." > /etc/rsync.password [root@nfs01 ~]# chmod 600 /etc/rsync.password - 执行非交互式数据传输测试
[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@11.0.1.192::backup --password-file=/etc/rsync.password
案例: 使用rsync实现无差异同步
#推送方式实现无差异,以客户端为准,客户端有什么服务端就有什么?
[root@nfs01 ~]# rsync -avz --delete /lqq rsync_backup@11.0.1.192::backup --password-file=/etc/rsync.password
#客户端
[root@nfs01 lqq]# tree /lqq/
/lqq/
├── a
│?? ├── 1.txt
│?? ├── 2.txt
│?? └── 3.txt
├── b
│?? ├── 1.txt
│?? ├── 2.txt
│?? └── 3.txt
├── c
│?? ├── 1.txt
│?? ├── 2.txt
│?? └── 3.txt
└── exclude.txt
?
3 directories, 10 files
#服务端
[root@backup backup]# tree lqq/
lqq/
├── a
│?? ├── 1.txt
│?? ├── 2.txt
│?? └── 3.txt
├── b
│?? ├── 1.txt
│?? ├── 2.txt
│?? └── 3.txt
├── c
│?? ├── 1.txt
│?? ├── 2.txt
│?? └── 3.txt
└── exclude.txt
?
3 directories, 10 files
?
#拉取方式实现无差异,以服务端为准,服务端有什么客户端端就有什么?
[root@nfs01 ~]# rsync -avz --delete ? rsync_backup@11.0.1.192::backup /lqq/ --password-file=/etc/rsync.password
receiving incremental file list
deleting c/3.txt
deleting c/2.txt
deleting c/1.txt
deleting c/
deleting b/3.txt
deleting b/2.txt
deleting b/1.txt
deleting b/
deleting a/3.txt
deleting a/2.txt
deleting a/1.txt
deleting a/
deleting exclude.txt
./
hosts
11.0.1.193/
11.0.1.193/hosts
11.0.1.198/
11.0.1.198/hosts
?
sent 100 bytes received 709 bytes 539.33 bytes/sec
total size is 963 speedup is 1.19
?
#客户端
[root@nfs01 lqq]# ll
total 4
drwxr-xr-x 2 1000 1000 19 Nov 17 07:54 11.0.1.193
drwxr-xr-x 2 1000 1000 19 Nov 17 07:54 11.0.1.198
-rw-r--r-- 1 root root 321 Nov 11 23:04 hosts
#服务端
[root@backup backup]# ll
total 4
drwxr-xr-x 2 rsync rsync 19 Nov 17 07:54 11.0.1.193
drwxr-xr-x 2 rsync rsync 19 Nov 17 07:54 11.0.1.198
-rw-r--r-- 1 rsync rsync 321 Nov 11 23:04 hosts
案例:rsync 的Limit限速
企业案例
某数据库管理员在使用rsync从远程服务器拉取大量数据备份时,因为文件体积庞大,导致内部交换机的带宽被占用,影响了其他用户的正常访问。
#客户端先生成一个500M大小的文件环境准备
[root@nfs01 ~]# dd if=/dev/zero of=./size.disk bs=1M count=500
500+0 records in
500+0 records out
524288000 bytes (524 MB) copied, 6.31678 s, 83.0 MB/s
?
[root@nfs01 ~]# rsync -avzP? ./size.disk rsync_backup@11.0.1.192::backup --password-file=/etc/rsync.password
sending incremental file list
size.disk
?? 524,288,000 100%? 109.67MB/s ?? 0:00:04 (xfr#1, to-chk=0/1)
?
sent 509,973 bytes? received 43 bytes? 92,730.18 bytes/sec
total size is 524,288,000? speedup is 1,027.98
?
#服务端接收文件
[root@backup backup]# ll
total 512004
drwxr-xr-x 2 rsync rsync ? ? ?? 19 Nov 17 07:54 11.0.1.193
drwxr-xr-x 2 rsync rsync ? ? ?? 19 Nov 17 07:54 11.0.1.198
-rw-r--r-- 1 rsync rsync ? ? ? 321 Nov 11 23:04 hosts
-rw-r--r-- 1 rsync rsync 524288000 Nov 17 10:53 size.disk


雷达卡


京公网安备 11010802022788号







