rsync备份服务
1.什么是rsync
Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。并且可以不进行改变原有数据的属性信息,实现数据的备份迁移特性。Rsync软件适用于Unix/linux/windows等多种操作系统平台。
2.rsync全量和增量

3.rsync命令的使用方法(1v4)
a.本地备份命令(替代cp)
[root@nfs01 ~]# rsync /etc/hosts /tmp [root@nfs01 ~]# ls /tmp/ hosts
b.远程备份命令
rsync -rp (r递归复制 p保持文件属性不变)(代替scp)
[root@nfs01 /etc/NetworkManager]# rsync -rp /etc/services 172.16.1.41:/backup root@172.16.1.41's password: #####检查###### [root@backup ~]# ls /backup/ services
rsync远程备份目录
[root@nfs01 ~]# rsync -rp /root/shuai 172.16.1.41:/backup(备份的目录没有/,目录和文件一起传输 ) root@172.16.1.41's password: #####检查###### [root@backup ~]# cd /backup/ [root@backup /backup]# tree shuai/ shuai/ ├── shuai01.txt ├── shuai02.txt └── shuai03.txt
[root@nfs01 ~]# rsync -rp /root/shuai/ 172.16.1.41:/backup (备份的目录有/,只传输目录下边的内容) root@172.16.1.41's password: #####检查###### [root@backup ~]# cd /backup/ [root@backup /backup]# ls shuai01.txt shuai02.txt shuai03.txt
c .将本地目录替换远程目录(–delete同步数据)
[root@nfs01 ~]# rsync -rp --delete /shuai/ 172.16.1.41:/backup root@172.16.1.41's password: #####检查###### [root@backup /backup]# ls shuai shuai.txt [root@backup /backup]# ls [root@backup /backup]# 说明: /shuai/要是空目录,不是空目录会替换
d.替代查看命令(ls)
[root@nfs01 ~]# rsync /etc/hosts -rw-r--r-- 349 2019/05/18 09:53:23 hosts
#1. 本地备份数据
Local: rsync [OPTION...](参数) SRC(要备份的数据)... [DEST](备份到哪里去)
#2. 远程备份数据
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
#USER-----用哪个用户身份拉取数据(默认以当前用户)
#HOST-----指定远程主机IP地址或主机名称(本地hosts做好解析)
#SRC------要拉取的数据信息
#dest-----保存到本地的路径
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
#SRC------本地要进行远程传输备份的数据
#USER------用哪个用户身份推送数据(默认以当前用户)
#HOST-----指定远程主机IP地址或主机名称(本地hosts做好解析)
#dest-----保存到远程主机的路径信息
#3.守护经常方式备份数据
#a.可以进行一些配置管理
#b.可以进行安全策略管理
#c.可以实现自动传输数据
5.rsync守护进程的部署
(1)下载安装软件
[root@nfs01 ~]# rpm -qa rsync | yum install rsync -y rsync-3.1.2-4.el7.x86_64
(2)编写配置文件
uid = rsync --- 指定管理备份目录的用户 gid = rsync --- 指定管理备份目录的用户组 port = 873 --- 定义rsync备份服务的网络端口号 fake super = yes --- 将rsync虚拟用户伪装成为一个超级管理员用户 use chroot = no --- 和安全相关的配置 max connections = 200 --- 最大连接数 同时只能有200个客户端连接到备份服务器 timeout = 300 --- 超时时间(单位秒) pid file = /var/run/rsyncd.pid --- 记录进程号码信息(让程序快速停止进程,判断一个服务是否正在运行) lock file = /var/run/rsync.lock --- 锁文件 log file = /var/log/rsyncd.log --- rsync服务的日志文件 用于排错分析问题 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 dir by shuai" path = /backup --- 模块中配置参数 指定备份目录

(3)创建虚拟用户
[root@nfs01 ~]# useradd rsync -M -s /sbin/nologin [root@nfs01 ~]# id rsync uid=1001(rsync) gid=1001(rsync) groups=1001(rsync)
(4)创建服务认证密码文件并更改文件权限
[root@nfs01 ~]# echo "rsync_backup:shuai123 " > /etc/rsync.password [root@nfs01 ~]# cat /etc/rsync.password rsync_backup:shuai123 [root@nfs01 ~]# chmod 600 /etc/rsync.password [root@nfs01 ~]# ll /etc/rsync.password -rw------- 1 root root 23 Jul 29 15:38 /etc/rsync.password
(5)创建备份目录并更改目录的属主属组
[root@backup ~]# mkdir /backup [root@backup ~]# mkdir /backup [root@backup ~]# chown rsync.rsync /backup/ [root@backup ~]# [root@backup ~]# ll /backup/ -d drwxr-xr-x 2 rsync rsync 6 Jul 29 15:44 /backup/
(6)启动服务
[root@backup ~]# systemctl start rsyncd [root@backup ~]# systemctl enable rsyncd Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.
(7)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或者主机名称 #::DES:备份服务器的模块信息 rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
(8)在客户端测试
[root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.31::backup Password: sending incremental file list hosts sent 221 bytes received 43 bytes 58.67 bytes/sec total size is 349 speedup is 1.32
(9)rsync在客户端配置
#1.创建密码文件 [root@nfs01 ~]# echo "123" > /etc/rsync.password [root@nfs01 ~]# chmod 600 /etc/rsync.password #2.进行免交互传输测试 [root@nfs01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.31::backup --password-file=/etc/rsync.password sending incremental file list sent 48 bytes received 20 bytes 136.00 bytes/sec total size is 349 speedup is 5.13
6.rsync参数含义
| 含义 | 参数 |
|---|---|
| -v –verbose | 显示详细的传输信息 |
| -a –archive | 命令的归档参数(包含rtopgDl) |
| -r –recursive | 递归参数 |
| -t –time | 保持文件属性的修改时间信息不变 |
| -o –owner | 保持文件的属主信息不变 |
| -g –group | 保持文件的属组信息不变 |
| -p –perms | 保持文件权限不变 |
| -D — | 保持设备文件信息不变 |
| -l –link | 保持链接文件属性不变 |
| -L | 保持链接文件的数据信息不变 |
| -P | 显示同步过程及传输时的进度信息 |
| –exclude=PATTERN | 指定排除不需要传输的文件(指定单个文件) |
| –exclude-from=file | 排除指定的数据不被传输(批量) |
| –bwlimt=RATE | 限制传输的速率 |
| –delete | 无差异同步信息(慎用) |
ps:如何让-o和-g参数生效,需要将配置文件的uid和gid改为root,将fake super参数注释。
7.守护进程企业多应用
(1)守护进程多模块功能配置
1.在rsync配置文件中添加相应的模块
[backup] comment = "backup dir by a!shuai" path = /backup [shuai] comment = "backup dir by a!shuai" path = /shuai
2.创建对应的目录
[root@backup ~]# mkdir -p /shuai
3.修改目录的属主属组
[root@backup ~]# chown rsync.rsync /shuai [root@backup ~]# ll -d /shuai drwxr-xr-x 2 rsync rsync 23 Jul 29 11:30 /shuai
4.重启rsyncd服务
[root@backup ~]# systemctl restart rsyncd [root@nfs01 /]# rsync -avz /etc/hosts rsync_backup@172.16.1.31::shuai --password-file=/etc/rsync.password sending incremental file list hosts sent 221 bytes received 43 bytes 528.00 bytes/sec total size is 349 speedup is 1.32 [root@backup ~]# ls /shuai shuai.txt
(2)守护进程的排除功能
1.环境准备
[root@nfs01 /shuai]# mkdir -p /shuai/{a..c} [root@nfs01 /shuai]# touch /shuai/{a..c}/{1..3}.txt [root@nfs01/shuai]# tree /shuai /shuai ├── a │ ├── 1.txt │ ├── 2.txt │ └── 3.txt ├── b │ ├── 1.txt │ ├── 2.txt │ └── 3.txt └── c ├── 1.txt ├── 2.txt └── 3.txt 3 directories, 9 files # 需求01: 将/shuai目录下面 a目录数据全部备份 b目录不要备份1.txt文件 c整个目录不要做备份 [root@nfs01 /shuai]# rsync -avz /shuai --exclude /shuai/b/1.txt --exclude=/shuai/c/ rsync_backup@172.16.1.31::backup --password-file=/etc/rsync.password sending incremental file list shuai/ shuai/a/ shuai/a/1.txt shuai/a/2.txt shuai/a/3.txt shuai/b/ shuai/b/2.txt shuai/b/3.txt # 需求02: 将/shuai目录下面 a目录数据全部备份 b目录不要备份1.txt文件 c整个目录1.txt 3.txt文件不要备份 a.编写排除文件 [root@nfs01 /]# cat exclub.txt /shuai/b/1.txt /shuai/c/1.txt /shuai/c/3.txt [root@nfs01 /shuai/c]# rsync -avz /shuai --exclude-from=/exclub.txt rsync_backup@172.16.1.31::backup --password-file=/etc/rsync.password sending incremental file list shuai/ shuai/a/ shuai/a/1.txt shuai/a/2.txt shuai/a/3.txt shuai/b/ shuai/b/2.txt shuai/b/3.txt shuai/c/ shuai/c/2.txt sent 460 bytes received 158 bytes 1,236.00 bytes/sec total size is 0 speedup is 0.00
(3)守护进程备份目录
[root@nfs01 /]# rsync -avz /etc/hosts rsync_backup@172.16.1.31::backup/10.0.0.41/ --password-file=/etc/rsync.password [root@backup /backup]# ls 10.0.0.41
(4)守护进程的访问控制配置
[root@backup /backup]# cat /etc/rsyncd.conf hosts allow = 172.16.1.0/24 hosts deny = 0.0.0.0/32
(5)守护进程的列表功能配置
[root@backup /backup]# cat /etc/rsyncd.conf list = false [root@nfs01 ~]# rsync rsync_backup@172.16.1.31:: backup "backup dir by a!shuai" shuai "backup dir by a!shuai"
Linux运维

浙公网安备 33010602011771号