1. rsync服务端
1. 安装软件
yum -y install rsync
2. 修改配置文件
cat /etc/rsyncd.conf
uid = rsync # 指定管理备份目录的用户
gid = rsync # 指定管理备份目录的用户组
port = 873 # 端口号
use chroot = yes # 这样可以增加安全性
fake super = yes # 将rsync虚拟用户伪装成为一个超级管理员用户
max connections = 50 # 最大的连接数
pid file = /var/run/rsyncd.pid # pid文件
lock file = /var/run/rsync.lock # 锁文件
log file = /var/log/rsyncd.log # log文件
exclude = lost+found/ # 排除的文件或目录
transfer logging = yes # 使rsync服务器使用ftp格式的文件来记录下载和上载操作在自己单独的日志中
timeout = 900 # 超时(秒)
ignore nonreadable = yes # 指定rsync服务器完全忽略那些用户没有访问权限的文件,这对于在需要备份的目录中有些文件所不应该被备份者得到的情况下是有意义的
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 # 不用压缩的文件类型
read only = false # 仅读 true/false
list = false # 不让客户端查看到有哪些模块
hosts allow = 192.168.137.0/24 # 白名单
hosts deny = 0.0.0.0/32 # 黑名单
auth users = rsync_backup # 用户名
secrets file = /etc/rsync.passwd # 用户,密码文件(权限600)格式问user:password
[backup] # 模块名
path = /backup # 模块名对应的真正的目录
comment = backup sources # 描述
[db]
path = /db
comment = db sources
3. 创建rysnc服务的虚拟用户,创建备份服务认证密码文件,创建备份目录并修改属主属组
useradd -M -s /sbin/nologin rsync # 创建rsync虚拟用户
echo "rsync_bakcup:123456" > /etc/rsync.passwd && chmod 600 /etc/rsync.passwd # 创建备份服务认证密码文件
mkdir -p /backup && mkdir -p /db && chown rsync.rsync /backup /db # 创建备份目录并修改属主属组
4. 启动rysncd服务
systemctl restart rsyncd.service
systemctl enable rsyncd.service
systemctl status rsyncd.service
2. 客户端配置
1. 安装软件
yum -y install rsync
2. 创建密码认证文件
echo "123456" > /etc/rsync.passwd && chmod 600 /etc/rsync.passwd
3. 备份文件实现无交互式传输文件
rsync /etc/hosts rsync_bakcup@xxx.xxx.xxx.xxx::backup --password-file=/etc/rsync.passwd
3. rsync命令参数详细说明
-v, --verbose 显示详细的传输信息
-a, --archive 命令的归档参数 包含: rtopgDl
-r, --recursive 递归参数
-t, --times 保持文件属性信息时间信息不变(修改时间)
-o, --owner 保持文件属主信息不变
-g, --group 保持文件属组信息不变
PS: 如何让-o和-g参数生效,需要将配置文件uid和gid改为root,需要将 fake super参数进行注释
-p, --perms 保持文件权限信息不变
-D, 保持设备文件信息不变
-l, --links 保持链接文件属性不变
-L, 保持链接文件数据信息不变
-P, 显示数据传输的进度信息
--exclude=PATTERN 排除指定数据不被传输
--exclude-from=file 排除指定数据不被传输(批量排除)
--bwlimit=RATE 显示传输的速率 100Mb/8=12.5MB
企业案例: 马路(带宽-半) 人人网地方
--delete 无差异同步参数(慎用)