rsync-daemon + lsyncd实现文件近实时备份
实验拓扑结构可实时监测文件变化在文件发生变化后及时同步到rsyncd服务器环境为rocky linux 10.1cat /etc/redhat-releaseRocky Linux release 10.1 (Red Quartz)首先搭建rsync服务器dnf -y install rsync rsync-daemongroupadd -r rsyncuseradd -r -s /sbin/nologin -M -g rsync rsyncmkdir -p /backup/web{1,2}chown -R rsync:rsync /backupvim /etc/rsyncd.passwdweb1:web1web2:web2chmod 600 /etc/rsyncd.passwdsystemctl enable --now rsyncd测试rsync服务器连接在web1上执行测试dnf -y install rsyncecho web1 /etc/rsyncd.client.passwdchmod 600 /etc/rsyncd.client.passwdmkdir /web1cd /web1for i in {1..10}; do echo $i $i.txt; donersync -avz /web1/ web1192.168.230.142::web1 --password-file/etc/rsyncd.client.passwd在web2上执行测试dnf -y install rsyncecho web2 /etc/rsyncd.client.passwdchmod 600 /etc/rsyncd.client.passwdmkdir /web2cd /web2for i in {a..k};do echo $i $i.txt; donersync -avz /web2/ web2192.168.230.142::web2 --password-file/etc/rsyncd.client.passwd在web1和web2上编译安装lsyncdgit clone https://github.com/lsyncd/lsyncd.gitdnf config-manager --enable crbdnf -y install Development Toolsdnf -y install make cmake gcc lua lua-develcd lsyncd/mkdir buildcd buildcmake ..make -j4make installweb1上准备lsyncd配置文件默认有delete选项两边文件保持一持通过delay值调整同步延迟设置为0时近乎实时mkdir -p /var/log/lsyncdvim /etc/lsyncd.confsettings {statusFile /tmp/lsyncd.stat,logfile /var/log/lsyncd/lsyncd.log,statusInterval 1,insist true,nodaemon true,}sync{default.rsync,source/web1/,targetweb1192.168.230.142::web1,delay 1,rsync {binary /usr/bin/rsync,archive yes,verbose yes,compress yes,password_file /etc/rsyncd.client.passwd,}}web2上准备lsyncd配置文件mkdir -p /var/log/lsyncdvim /etc/lsyncd.confsettings {statusFile /tmp/lsyncd.stat,logfile /var/log/lsyncd/lsyncd.log,statusInterval 1,insist true,nodaemon true,}sync{default.rsync,source/web2/,targetweb2192.168.230.142::web2,delay 1,rsync {binary /usr/bin/rsync,archive yes,verbose yes,compress yes,password_file /etc/rsyncd.client.passwd,}}web1和web2上准备服务启动文件vim lsyncd.service[Unit]DescriptionLive sync daemonAfternetwork.target[Service]TypesimpleExecStart/usr/local/bin/lsyncd --nodaemon /etc/lsyncd.confExecReload/bin/kill -HUP $MAINPIDKillModeprocessRestarton-failureRestartSec2s[Install]WantedBymulti-user.targetinstall -Dm600 lsyncd.service /usr/lib/systemd/system/lsyncd.service启动服务并设置开机自启systemctl enable --now lsyncd效果测试方法在rsync服务器上使用命令watch -n 0.5 tree观测目录结构变化在web1或web2上添加/删除文件或目录观察同步情况在rsync服务器上使用命令watch -n 0.5 cat /web2/test/t.txt观测文件内容变化在web2上修改文件内容观察同步情况