实现两台Linux主机文件实时同步

淡淡的烟草味﹌ 2021-09-25 11:54 505阅读 0赞

实现两台Linux主机文件实时同步

描述

现有服务器A和服务器B,如果服务器A的指定目录(例如/home/paul/rsync/)中的内容发生变更(增删改和属性变更),实时将这些变更同步到服务器B的目标目录中(例如/home/paul/rsync/

实现

  1. 安装Rsync
  2. 配置服务器之间免密登录
  3. 文件系统监听

代码

  1. yum install rsync
  2. # 服务器A执行
  3. ssh-keygen
  4. ssh-copy-id 服务器BIP地址
  5. # 在服务器A中
  6. mkdir /home/paul/rsync
  7. # 服务器B中
  8. mkdir /home/paul/rsync
  9. # 服务器A创建测试文件
  10. echo "Hello from Server A" >> /home/paul/rsync/demo.txt
  11. # 测试
  12. # 将服务器A中的/home/paul/rsync目录内的文件复制到服务器B(192.168.100.130)的/home.paul/rsync中
  13. rsync -avPz --progress /home/paul/rsync 服务器BIP地址:/home.paul/rsync
  14. # 比较目标端和源端的文件,如果目标端的文件在源端不存在,在目标端删除该文件
  15. rsync -avPz --delete --progress /home/paul/rsync 服务器BIP地址:/home.paul/rsync
  16. # 安装文件系统事件监听工具inotify
  17. yum install -y epel-release
  18. yum --enablerepo=epel install inotify-tools
  19. # 同步脚本
  20. touch inotifywait-rsync.sh
  21. inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e modify,delete,create,attrib /home/paul/rsync/ | while read file
  22. do
  23. rsync -avPz --progress /home/paul/rsync/ 服务器BIP地址:/home/paul/rsync/
  24. rsync -avPz --delete /home/paul/rsync/ 服务器BIP地址:/home/paul/rsync/
  25. echo "${file} was synchronized"
  26. done
  27. # 定时任务
  28. crontab -e
  29. * * * * * sh /home/paul/inotifywait-rsync.sh
  30. /sbin/service crond start //启动服务
  31. /sbin/service crond stop //关闭服务
  32. /sbin/service crond restart //重启服务
  33. /sbin/service crond reload //重新载入配置
  34. /sbin/service crond status //查看服务状态

发表评论

表情:
评论列表 (有 0 条评论,505人围观)

还没有评论,来说两句吧...

相关阅读