Rsync + Sersync 实现文件实时同步与cockpit管理服务器

项目实战: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)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值