使用rsync+inotify实现/www目录实时同步
使用rsync+inotify实现/www目录实时同步
1.实验架构
2.backup-server主机基本操作
1.修改主机名,创backup目录
[root@centos8:~]#hostnamectl set-hostname backup.magedu.org && exit
[root@backup ~]# mkdir /backup
------------------------------------------------------------------------
如果不创建会报错:
[root@data ~]# rsync --password-file=/etc/rsync.pas /etc/sysctl.conf rsync://rsyncuser@10.0.0.18/backup
@ERROR: chroot failed
rsync error: error starting client-server protocol (code 5) at main.c(1661) [sender=3.1.3]
-------------------------------------------------------------------------
2.作为守护进程需要先创建配置文件
[root@backup ~]#yum -y install rsync rsync-daemon #安装此包,实则是生成service服务,便于控制启动和关闭。
[root@backup ~]#vim /etc/rsyncd.conf
uid = root
gid = root
#use chroot = no
max connections = 0
ignore errors
exclude = lost+found/
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
reverse lookup = no
#hosts allow = 10.0.0.0/24
[backup]
path = /backup/
comment = backup dir
read only = no
auth users = rsyncuser
secrets file = /etc/rsync.pas
[root@backup ~]#
mkdir /backup/
[root@backup ~]#systemctl enable --now rsyncd
[root@backup ~]#echo "rsyncuser:magedu" > /etc/rsync.pas
[root@backup ~]#chmod 600 /etc/rsync.pas
3.data-server主机基本操作
1.修改主机名
[root@centos8 ~]#hostnamectl set-hostname data.magedu.org && exit
[root@data ~]#yum -y install rsync
2.对备份服务器安装的rsync-daemon启动检测
[root@data ~]# rsync rsync://10.0.0.18
backup backup dir
root@backup:~
3.传输服务检测
配合脚本使用的密码形式,
[root@data ~]#mkdir /www
[root@data ~]#echo "magedu" > /etc/rsync.pas
[root@data ~]#chmod 600 /etc/rsync.pas
[root@data ~]#
rsync --password-file=/etc/rsync.pas /etc/sysctl.conf rsync://rsyncuser@10.0.0.18/backup
4.backup主机看效果
[root@backup ~]#ls /backup
sysctl.conf
4.data-server执行脚本实时同步
1.编写脚本实现实时同步
[root@data ~]#vim inotify_rsync.sh
#!/bin/bash
SRC='/www/'
DEST='rsyncuser@10.0.0.18::backup'
rpm -q rsync &> /dev/null || yum -y install rsync
inotifywait -mrq --exclude=".*\.swp" --timefmt '%Y-%m-%d %H:%M:%S' --format '%T %w %f' -e create,delete,moved_to,close_write,attrib ${SRC} |while read DATE TIME DIR FILE;do
FILEPATH=${DIR}${FILE}
rsync -az --delete --password-file=/etc/rsync.pas $SRC $DEST && echo "At ${TIME} on ${DATE}, file $FILEPATH was backuped up via rsync" >> /var/log/changelist.log
Done
2. 执行脚本实现实时同步的效果。
inotifywait命令工具
[root@data ~]## yum -y install inotify-tools
[root@data ~]#bash inotify_rsync.sh
3.查看文件传输日志
[root@data ~]#
tail -f /var/log/changelist.log
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器