[root@ServerOne ~]# tar zxf /inotify-tools-3.14.tar.gz -C /usr/src [root@ServerOne ~]# cd /usr/src/inotify-tools-3.14/ [root@ServerOne inotify-tools-3.14]# ./configure --prefix=/usr/local/inotify && make && make install [root@ServerOne inotify-tools-3.14]# ln -s /usr/local/inotify/bin/* /usr/local/bin/
编写实时同步脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
[root@ServerOne ~]# cd /etc/keepalived/ [root@ServerOne keepalive]# vi rsync.sh #!/bin/bash SrcPath=/datanfs/ DestPath=/datanfs/ BackupServerone=172.16.1.13 #BackupServertwo=172.16.1.100 inotifywait -mrq --format %w%f -e create,delete,close_write $SrcPath | while read line; do if [ -f $line ]; then rsync -a --delete $SrcPath root@${BackupServerone}:$DestPath else rsync -a --delete $SrcPath root@${BackupServerone}:$DestPath fi done
运行脚本测试
1 2 3 4 5 6 7 8 9
[root@ServerOne keepalive]# sh /etc/keepalived/rsync.sh & [root@ServerOne keepalive]# ps -ef | grep rsync.sh root 47252 112299 0 14:50 pts/1 00:00:00 sh /etc/keepalived/rsync.sh [root@ServerOne datanfs]# echo "2021/02/08 test rsync" > 20210208test.txt [root@ServerOne datanfs]# ls 20210208test.txt # 备机验证 [root@ServerTwo datanfs]# ls 20210208test.txt
编写检查rsync同步脚本
1 2 3 4 5 6
[root@server1 keepalived]# vi /etc/keepalived/check_rsync.sh CheckRsync=`ps -ef | grep 'sh /etc/keepalived/rsync.sh' | grep -v auto | wc -l` if [ $CheckRsync -eq 0 ]; then sh /etc/keepalived/rsync.sh >& /etc/keepalived/rsync.log fi