项目实战:Rsync + Sersync 实现文件实时同步
客户端中数据发生变化,同步到server端(备份服务器)。
Rsync:负责数据同步,部署在server端。
Sersync:负责监控数据目录变化,并调用rsync进行同步,部署在client端。
部署 Rsync 服务
安装软件包
yum install -y rsync
web服务器的数据变化,同步给 backup
配置 rsync
本次实验使用验证用户同步。
# 准备同步目录,该目录任何用户都可以读写
[root@server ~ 09:10:51]# mkdir -m 777 /backup
# 配置rsync,不验证用户,直接同步
[root@server ~ 10:11:27]# vim /etc/rsyncd.conf
[backup]
comment = backup
path = /backup
read only = no
auth users = rsync
secrets file = /etc/rsyncd.secrets
# 创建用户凭据文件
[root@server ~ 10:14:06]# echo 'rsync:123' > /etc/rsync
[root@server ~ 10:15:07]# chmod 400 /etc/rsyncd.secrets
# 启用并启动rsyncd服务
[root@server ~ 10:15:28]# systemctl enable rsyncd --now
Created symlink from /etc/systemd/system/multi-user.tare to /usr/lib/systemd/system/rsyncd.service.
# 配置防火墙
[root@server ~ 10:15:50]# firewall-cmd --add-service=rs
success
[root@server ~ 10:16:13]# firewall-cmd --add-service=rs
success
[root@server ~ 10:35:31]# systemctl restart rsyncd
[root@server ~ 10:36:09]# setenforce 0
[root@server ~ 10:36:53]# systemctl restart rsyncd
# 准备密码文件
[root@client ~ 10:18:11]# echo 123 > rsyncd.secrets
[root@client ~ 10:18:43]# chmod 400 rsyncd.secrets
# 传输测试
[root@client ~ 10:28:14]# rsync -av ./rsyncd.secrets /etc/hostname rsync@server::backup
Password:
sending incremental file list
hostname
rsyncd.secrets
sent 189 bytes received 54 bytes 69.43 bytes/sec
total size is 20 speedup is 0.08
[root@server ~ 10:36:57]# ls /backup/
hostname rsyncd.secrets
部署 Sersync 服务
Sersync 服务介绍
sersync 使用c++编写,类似于inotify,同样用于监控,但它克服了inotify的缺点。
inotify 最大的不足是会产生重复事件,或者同一个目录下多个文件的操作会产生多个事件,例如,当监控目录中有5个文件时,删除目录时会产生6个监控事件,从而导致重复调用rsync命令。比如:vim文件时,inotify会监控到临时文件的事件,但这些事件相对于rsync来说是不应该被监控的。
sersync 优点:
- sersync 同步效率更高,它会对linux系统文件系统产生的临时文件和重复的文件操作进行过滤,节省了运行时耗和网络资源。
- sersync配置很简单,其中提供了静态编译好的二进制文件和xml配置文件,直接使用即可。
- sersync使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状态。
- sersync有出错处理机制,通过失败队列对出错的文件重新同步,如果仍旧失败,则按设定时长对同步失败的文件重新同步。
- sersync自带crontab功能,只需在xml配置文件中开启,按要求隔一段时间整体同步一次。
- sersync 可以二次开发。
#安装软件包
[root@client ~ 10:41:56]# rz -E
rz waiting to receive.
#解压文件
[root@client ~ 10:55:58]# tar xf sersync2.5.4_64bit_binary_stable_final.t[root@client ~ 10:56:14]# ls GNU-Linux-x86/
confxml.xml sersync2
#配置文件
[root@client ~ 10:56:19]# vim confxml.xml
#准备同步目录
[root@client ~ 10:58:21]# mkdir /app_data
[root@client ~ 10:58:59]# cp GNU-Linux-x86/sersync2 /usr/local/bin/
[root@client ~ 10:59:07]# sersync2 -h
set the system param
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
parse the command param
_______________________________________________________
#运行sersync
[root@client ~ 10:59:15]# sersync2 -o confxml.xml -d
set ute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
parse the command param
option: -o config xml name: confxml.xml
#server端监控目录/backup
[root@server ~]# watch -n 1 ls /backup
#客户端创建文件和目录
[root@client ~ 11:00:14]# echo hello world > /app_data/welcome.txt
[root@client ~ 11:00:58]# mkdir /app_data/dbdata
Every 1.0s: ls /backup Wed Jul 30 11:03:04 2025
dbdata
hostname
rsyncd.secrets
welcome.txt
Cockpit 管理服务器
Cockpit 是一个开源工具,通过Web Console管理Linux服务器。
部署 Cockpit
安装软件包
yum -y install cockpit
#启动服务
[root@server ~ 11:31:03]# systemctl enable cockpit.socket --now
Created symlink from /etc/systemd/system/sockets.target.wants/cockpit.socket to /usr/lib/systemd/system/cockpit.socket.
#配置防火墙
[root@server ~ 11:32:18]# firewall-cmd --add-service=cockpit
success
[root@server ~ 11:32:47]# firewall-cmd --add-service=cockpit --permanent
success
使用 Cockpit
登录 Cockpit
打开浏览器,访问Cockpit界面


–permanent
success
### 使用 Cockpit
#### 登录 Cockpit
打开浏览器,访问Cockpit界面
[外链图片转存中...(img-E4KKtjTQ-1753872814811)]
[外链图片转存中...(img-rh90Wr5M-1753872814813)]

被折叠的 条评论
为什么被折叠?



