用rsync和inotify来实现服务器文件的实时同步,实验的目的是将192
用rsync和inotify来实现服务器文件的实时同步,实验的目的是将192
在Linux运维管理实际操作中,文件的备份,对每个系统管理者与电脑使用者来说都很重要,常见的方式,将文件传送至另一台电脑做备份,或者另存在动存储备份之外操作系统,实际应用中,为了数据文件的安全性,需要实时备份服务器上的文件数据,本文将简述用rsync和inotify来实现服务器文件的实时同步。
实验的目的是将192.168.1.10上 /data/www 目录的文件同步复制到192.168.1.20上的 /data/bakwww 目录中。
主服务器配置 (上安装rsync和inotify)
安装rsync (rsync在主服务器上不需要配置文件)
# wget https://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz
# tar zxvf rsync-3.0.9.tar.gz
# cd rsync
# ./configure –prefix=/usr/local/rsync
# make && make install
建立密码认证文件
# echo “ltpwd” > /usr/local/rsync/rsync.pas
# chmod 600 /usr/local/rsync/rsync.pas
Inotify 是文件系统事件监控机制,作为 dnotify 的有效替代。dnotify 是较早内核支持的文件监控机制。Inotify 是一种强大的、细粒度的、异步的机制,它满足各种各样的文件监控需要,不仅限于安全和性能。
inotify 可以监视的文件系统事件包括:
IN_ACCESS,即文件被访问IN_MODIFY,文件被 writeIN_ATTRIB,文件属性被修改,如 chmod、chown、touch 等IN_CLOSE_WRITE,可写文件被 closeIN_CLOSE_NOWRITE,不可写文件被 closeIN_OPEN,文件被 openIN_MOVED_FROM,文件被移走,如 mvIN_MOVED_TO,文件被移来,如 mv、cpIN_CREATE,创建新文件IN_DELETE,文件被删除,如 rmIN_DELETE_SELF,自删除,即一个可执行文件在执行时删除自己IN_MOVE_SELF,自移动,即一个可执行文件在执行时移动自己IN_UNMOUNT,宿主文件系统被 umountIN_CLOSE,文件被关闭,等同于(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)IN_MOVE,文件被移动,等同于(IN_MOVED_FROM | IN_MOVED_TO)注:上面所说的文件也包括目录。下载地址:https://github.com/rvoicilas/inotify-tools/wiki/
安装inotify
# wget http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
# tar zxvf inotify-tools-3.14.tar.gz
# cd inotify-tools-3.14
# ./configure –prefix=/usr/local/inotify
# make && make install
创建启动脚本
# vim /usr/local/inotify/rsync.sh
#!/bin/bash src=/data/www des=webuser@192.168.1.10::web /usr/local/bin/inotifywait -mrq –format ‘%w%f’ -e modify,delete,create,attrib ${src} | while read x do rsync -avz –delete –progress $src $des && echo “$x was rsynced” >>/usr/local/rsync/rsync.log done
/usr/local/inotify/rsync.sh &
备份服务器的配置
安装rsync
# wget https://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz
# tar zxvf rsync-3.0.9.tar.gz
# cd rsync
# ./configure –prefix=/usr/local/rsync
# make && make install
建立密码文件
# echo “webuser:ltpwd” > /usr/local/rsync/rsync.pas
# chmod 600 /usr/local/rsync/rsync.pas
建立配置文件
# vim /usr/local/rsync/rsync.conf
uid = root gid = root use chroot = no max connections = 3 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log [web] path = /data/bakwww ignore errors read only = no list = no auth users = webuser secrets file = /usr/local/rsync/rsync.pas
启动rsync
# /usr/local/rsync/bin/rsync –daemon –config=/usr/local/rsync/rsync.conf
评论暂时关闭