rsync+inotify实现服务器之间文件实时同步

以你之姓@ 2022-02-26 06:28 294阅读 0赞

rsync+inotify实现服务器之间文件实时同步

rsync 实现文件的同步

inotify 实现实时监控

服务器环境:linux centos7.0

主:192.168.135.142

备:192.168.135.143

安装包下载(也可以使用yum安装):https://download.csdn.net/download/u010533511/11071763

测试下载目录:/www/package/

主备服务器都要安装rsync

  1. [root@localhost package]# tar zxvf rsync-3.0.9.tar.gz
  2. [root@localhost package]# cd rsync-3.0.9
  3. [root@localhost rsync-3.0.9]# ./configure --prefix=/usr/local/rsync
  4. [root@localhost rsync-3.0.9]# make && make install

主服务器安装inotify-tools(备服务器不用安装)

  1. [root@localhost package]# tar zxvf inotify-tools-3.14.tar.gz
  2. [root@localhost package]# cd inotify-tools-3.14
  3. [root@localhost inotify-tools-3.14]# ./configure --prefix=/usr/local/inotify
  4. [root@localhost inotify-tools-3.14]# make && make install

设置密码文件,及给密码文件设置权限(主文件只设置密码)

  1. [root@localhost rsync-3.0.9]# cd /usr/local/rsync/
  2. [root@localhost rsync]# echo "123456" >/usr/local/rsync/rsync.passwd
  3. [root@localhost rsync]# chmod 600 rsync.passwd

设置主配置文件

  1. [root@localhost rsync]# vim rsync.conf
  2. [www] #模块名称
  3. path = /www/ #要同步目录
  4. read only = no
  5. list = no
  6. hosts allow = 192.168.135.0/24 #允许ip
  7. auth users =tbuser
  8. secrets file = /usr/local/rsync/rsync.passwd #密码文件

创建自动同步脚本

  1. [root@localhost rsync]# vim /tmp/rsync.sh
  2. #!/bin/bash
  3. # host 备服务器ip src同步目录 des 同步的模块名称 user同步的用户
  4. host=192.168.135.143
  5. src=/www/
  6. des=www
  7. user=tbuser
  8. /usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \
  9. | while read files
  10. do
  11. /usr/bin/rsync -vzrtopg --delete --progress --password-file=/usr/local/rsync/rsync.passwd $src $user@$host::$des
  12. echo "${files} was rsynced" >> /www/rsync.log 2>&1
  13. done

备服务器安装rsync

  1. [root@localhost package]# tar zxvf rsync-3.0.9.tar.gz
  2. [root@localhost package]# cd rsync-3.0.9
  3. [root@localhost rsync-3.0.9]# ./configure --prefix=/usr/local/rsync
  4. [root@localhost rsync-3.0.9]# make && make install

设置密码文件,及给密码文件设置权限(备服务器是 用户名:密码)

  1. [root@localhost rsync-3.0.9]# cd /usr/local/rsync/
  2. [root@localhost rsync]# echo "tbuser:123456" >/usr/local/rsync/rsync.passwd
  3. [root@localhost rsync]# chmod 600 rsync.passwd

设置备配置文件

  1. [root@localhost rsync]# vim rsync.conf
  2. [www] #模块名称
  3. path = /www/ #要同步目录
  4. read only = no
  5. list = no
  6. hosts allow = 192.168.135.0/24 #允许ip
  7. auth users =tbuser
  8. secrets file = /usr/local/rsync/rsync.passwd #密码文件

创建用户

  1. [root@localhost rsync]useradd tbuser #创建用户
  2. [root@localhost rsync]passwd tbuser #设置密码

做一条软链指向到rsync(避免启动后同步会报找不到rsync的错误)

  1. #ln -s /usr/local/rsync/bin/rsync /usr/bin/rsync

启动主服务器rsync: /usr/bin/rsync —daemon —config=/etc/rsync.conf

启动备服务器rsync: /usr/bin/rsync —daemon —config=/etc/rsync.conf

启动主服务器监控脚本:

  1. # sh /tmp/rsync.sh & 在退出终端后会进程也会结束
  2. # nohup /tmp/rsync.sh & 退出终端进程不会结束

测试在www目录下创建文件查看是否同步

rsync配置是模块化的,可以配置多个模块 [模块名称] 到下一个方括号开始或文件结束

发表评论

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

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

相关阅读