使用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

posted @   惊起千层浪  阅读(72)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
点击右上角即可分享
微信分享提示