Rsync服务
Rsync 是一款同步文件、目录的命令,同时也可作为一个服务,支持增量同步,常用于备份文件到指定服务器。
一、对比 scp
1
| scp -r /etc qiankong@192.168.10.250:/tmp
|
1
| rsync -avz /etc qiankong@192.168.10.250:/var/tmp
|
-a 多个选项的组合
-v 显示传输时详细信息
-z 压缩传输,节省带宽
scp 不支持增量同步,每次都会全部覆盖一遍。
rsync 会自动对比文件差异,只同步新增和修改。
二、应用场景
| 应用场景 |
应用建议 |
| rsync作为命令使用 |
临时拉取,推送数据。和 scp 差不多。 |
定时备份(rsync + crond) |
定时备份,增量传输 |
| 实时同步 |
解决存储服务单点问题 |
| 异地容灾 |
备份到异地的服务器 |
三、不同模式
3.1 本地模式
本地模式和 cp 命令无异。
注意
/etc 传输目录及其内部所有文件
/etc/ 只传输内部所有文件
3.2 远程模式
| 格式 |
|
|
rsync -a |
源文件 |
目标 |
推送 rsync |
/etc/hostname |
qiankong@192.168.10.250:/tmp |
拉取 rsync |
qiankong@192.168.10.250:/etc/hostname |
/opt |
1
| rsync -a /etc/hostname qiankong@192.168.10.250:/tmp
|
1
| rsync -a qiankong@192.168.10.250:/etc/hostname /opt
|
3.3 守护进程模式
服务通用流程
:one: 部署
:two: 配置
:three: 启动、使用
:four: 优化
:five: 故障
:six: 自动化(监控,日志,安全,自动部署,容器)
3.3.1 安装部署
- 安装
- 主要配置文件
1 2 3 4 5 6 7 8
| [root@study-linux tmp]# rpm -ql rsync /etc/rsyncd.conf /etc/sysconfig/rsyncd /usr/bin/rsync /usr/lib/systemd/system/rsyncd.service /usr/lib/systemd/system/rsyncd.socket /usr/lib/systemd/system/rsyncd@.service ....
|
3.3.2 配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| fake super = yes uid = rsync gid = rsync use chroot = no max connections = 2000 timeout = 600 pid file = /var/run/rsyncd.pid lock file = /var/run/rsyncd.lock log file = /var/log/rsyncd.log ignore errors read only = false list = false hosts allow = 192.168.10.0/24
auth users = rsync_backup secrets file = /etc/rsync.password
[data] comment = some date by qiankong path = /data/rsyncd_data
|
启动服务
1 2
| systemctl enable rsyncd systemctl start rsyncd
|
检查进程
检查端口
放行端口号(总是忘记重载配置)
1 2
| firewall-cmd --permanent --add-port=873/tcp firewall-cmd --reload
|
3.3.3 补充配置
- 添加虚拟用户
1
| useradd -r -M rsync -s /sbin/nologin
|
验证
- 编辑密码文件
1
| chmod 600 /etc/rsync.password
|
- 创建共享目录
1
| chown rsync.rsync /data/rsyncd_data
|
验证
1
| ls -ld /data/rsyncd_data
|
- 启动后验证
本地测试
1
| rsync /etc/hostname rsync_backup@192.168.10.18::data
|
远程测试
1
| rsync -avz /etc/hosts rsync_backup@192.168.10.18::data
|
3.3.4 客户端优化
- 指定密码文件
1
| echo "1" > /etc/rsync.client
|
1
| chmod 600 /etc/rsync.client
|
1
| rsync -avz /etc/hosts rsync_backup@192.168.10.250::data --password-file=client.passwd
|
四、补充选项