实测inotify rsync 实时文件同步

源文件地址 ip1 路径:/test
目标文件地址 ip2 路径:/des

1、inotify检查和安装

该工具为文件实时监控工具,需要linux操作系统内核支持,内核支持需要至少版本为2.6.13

ip1机器下执行:

 uname -r  查看版本

返回:

2.6.32-358.6.1.el6.x86_64

支持则执行:
执行:

ll /proc/sys/fs/inotify
total 0 
-rw-r--r-- 1 root root 0 Oct 18 12:18 max_queued_events 
-rw-r--r-- 1 root root 0 Oct 18 12:18 max_user_instances 
-rw-r--r-- 1 root root 0 Oct 18 12:18 max_user_watches

执行:

yum install inotify-tools -y

获取inotify路径:
执行:which inotifywait
输出:/usr/bin/inotifywait

2、rsync 服务端程序安装

ip2机器执行:

cd /usr/local/src/
 wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz
 tar zxvf rsync-3.1.2.tar.gz
 cd rsync-3.1.2
 mkdir /usr/local/rsync
 ./configure --prefix=/usr/local/rsync
 make && make install
 vim /etc/profile 
加入export PATH=$PATH:/usr/local/srync/bin
source /etc/profile
ln -s /usr/local/rsync/bin/rsync /usr/bin/rsync
rsync --version

vim /etc/rsyncd.conf
文件如下:

uid = 0
gid = 0
port = 873
use chroot = on
max connections = 10
timeout = 120
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log

[bakup]
path = /des
comment = pic file
ignore errors
read only =no
list = false
hosts allow = ip1
auth users = root
secrets file = /etc/rsyncd.password
vim /etc/rsyncd.password

文件如下:

root:qwe123

密码文件权限必须是600

chmod 600 /etc/rsyncd.password

启动脚本,且开机启动

vim /etc/init.d/rsyn_cro.sh

脚本如下:

/usr/bin/rsync --daemon --config=/etc/rsyncd.conf

改变权限:
chmod -R 777 /etc/init.d/rsyn_cro.sh

3、文件更新监听和推送文件

安装客户端
ip1机器执行:

cd /usr/local/src/
 wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz
 tar zxvf rsync-3.1.2.tar.gz
 cd rsync-3.1.2
 mkdir /usr/local/rsync
 ./configure --prefix=/usr/local/rsync
 make && make install
 vim /etc/profile 
加入export PATH=$PATH:/usr/local/srync/bin
source /etc/profile
ln -s /usr/local/rsync/bin/rsync /usr/bin/rsync
rsync --version

新增密码文件:

vim /usr/local/notify_rsync/rsync.pwd

文本如下

qwe123

密码文件必须是600权限
chmod -R 600 /usr/local/notify_rsync/rsync.pwd

监控脚本:

vim /usr/local/notify_rsync/notify.sh

文件如下:

#!/bin/bash 
    src=/test/
    /usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,delete,create,attrib $src |  while read file
    do
          /usr/bin/rsync --password-file=/usr/local/notify_rsync/rsync.pwd -arzuq  $src  root@{ip2}::bakup/ 
          echo "  ${file} was rsynced" >>/usr/local/notify_rsync/log/rsync.log 2>&1 
    done

改变执行权限

chmod -R 777 /usr/local/notify_rsync/notify.sh

开机启动:

vim  /etc/init.d/notify_cron.sh

文件如下:

nohup /usr/local/notify_rsync/notify.sh > /usr/local/notify_rsync/nohup.out &

改变执行权限

chmod -R 777 /etc/init.d/notify_cron.sh

至此实时同步文件完成,当ip1 路径/test下有文件变化将会把文件推送至ip2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值