#实现两服务器文件实时同步
rsync:负责传输同步文件
inotify:负责监测文件变动
(服务端)# yum -y install rsync
上行同步
先部署无密码登陆远程服务器
# ssh-keygen -t rsa
# ssh-copy-id root@192.168.100.151
# rsync -avzH /kubernetes root@192.168.100.151:/
- -v 输出详细信息
- -z 压缩传输
- -H 保持硬链接
- -a 归档模式、保留文件权限、时间、链接、归属、特殊文件
部署Inotify文件监控
内核模块,监控文件和目录的变化,inotify-tools工具提供inotify-wait(持续监控)和inotify-watch(短期监控)两个模块进行监控
# tar -zxvf inotify-tools-3.13.tar.gz -C /usr/src/
# cd /usr/src/inotify-tools-3.13/
# ./configure &&make &&make install
# ls /usr/local/bin/inotify*
# vi /etc/sysctl.conf
- fs.inotify.max_queued_events = 16384 ##监控事件队列数
-
fs.inotify.max_user_instances = 1024 ##监控实例数
-
fs.inotify.max_user_watches = 1048576 ##监控的文件数量
# sysctl -p
#监控文件内容的各种变化
# inotifywait -mrq -e modify,create,attrib,move,delete /kubernetes-yaml
注:-m持续监控,r递归目录,q简化输出,-e指定监控事件:modify修改、create创建、attrib权限修改、move移动、delete删除;在其他终端操作文件,查看变化
#编写脚本
# vim rsync_inotify.sh
#!/bin/bash
RSYNC="rsync -avzH /kubernetes-yaml root@192.168.100.151:/ --delete"
INT_CMD="inotifywait -mrq -e modify,create,move,delete,attrib /kubernetes-yaml"
$INT_CMD |while read DIRECOTRY EVENT FILE;do
$RSYNC
done
# chmod +x rsync_inotify.sh
#后台运行
# rsync_inotify.sh &