inotify-tools+rsync实时同步文件安装和配置Ubuntu16.04

  1. inotify-tools安装在主服务器上,再此将主服务器叫A,将需要文件同步的服务器叫B

inotify-tools+rsync的实现原理是,在服务器中使用inotify-tools监控文件夹中的文件的改变(添加,删除文件),rsync进行文件传输。

​​​​​​​在A服务器上,需要确定你的系统是否支持inotify:​​​​​​​

inotify-tools+rsync实时同步文件安装和配置Ubuntu16.04_第1张图片

能输出这样的结果表示支持

​​​​​​​​​​​​​​​​​​​​​2.安装inotify-tools​​​​​​​

如果服务器能联网则用apt安装,输入命令apt-get install inotify-tools

如果服务器不能联网就下载离线安装包安装,安装命令如下


wget --no-check-certificate http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
tar xzvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure --prefix=/usr
make
make install

3.配置inotify-tools​​​​​​​

3.1vim /root/inotify_init.sh​​​​​​​

内容为:

SRC=/data/file/

DES=bbsatt
IP=服务器B的ip地址
USER=rsync
#DST=/etc/rsyncd 远程rsync模块下的目录
INWT=/usr/bin/inotifywait
RSYNC=/usr/bin/rsync

$RSYNC -zahqt --password-file=/root/rsync.pwd $SRC $USER@$IP::$DES

设置脚本的可执行权限chmod +x /root/inotify_init.sh

3.2vim /root/inotify_monitor.sh

INWT=/usr/bin/inotifywait

$INWT -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f %e' --event CLOSE_WRITE,create,move /data/file/ | while read date time file event
do

case $event in
MODIFY|CREATE|MOVE|MODIFY,ISDIR|CREATE,ISDIR|MODIFY,ISDIR)
if [ "${file: -4}" != '4913' ] && [ "${file: -1}" != '~' ]; then
cmd="rsync -avz /data/file/ rsync@B服务器IP地址::bbsatt --password-file=/root/rsync.pwd"
echo $cmd
$cmd
fi
;;
esac
done

3.3设置rsync密码

vim /root/rsync.pwd

在里面设置密码,例如

inotify-tools+rsync实时同步文件安装和配置Ubuntu16.04_第2张图片

设置rsync.pwd权限

chmod 600 /root/rsync.pwd

4.设置备份服务器B

4.1安装rsync,ubuntu服务器默认安装了rsync,一般不需要自己安装,rsync的默认端口是873

4.2配置rsync

vim /etc/rsyncd.conf

uid = root
gid = root
use chroot = no
max connections = 4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

[bbsatt]
path = /data/file/
ignore errors
read only = no
list = false
hosts allow = 服务器A的ip
auth users = rsync
secrets file = /etc/rsync.pas

4.3配置rsync密码(密码与服务器A中设置的rsync密码一致)

vim /etc/rsync.pas

设置rsync.pas权限

chmod 600 /etc/rsync.pas

4.4启动rsync

 rsync --daemon

5.文件同步

5.1测试量台服务之间直接用rsync同步

在服务器A中输入

rsync -avz /data/file rsync@服务器B的ip::bbsatt

如果执行成功,而且服务器A中的文件也同步到B中了,则表示rsync正常

5.2启动inotify_init.sh​​​​​​​和inotify_monitor.sh

分别执行命名/root/inotify_init.sh和/root/inotify_monitor.sh

无报错表示启动成功,现在往A服务器中的/data/file文件夹中放入一个新文件,如果在B服务器中成功接收,则整个配置成功。

你可能感兴趣的:(inotify-tools+rsync实时同步文件安装和配置Ubuntu16.04)