rsync+inotify实现多服务器文件共享

rsyncd服务端配置

rsyncd.conf

##rsyncd.conf start##
#工作中指定用户(需要指定用户)
uid = root
gid = root
#相当于黑洞.出错定位
use chroot = no
#有多少个客户端同时传文件
max connections = 200
#超时时间
timeout = 300
#进程号文件
pid file = /var/run/rsyncd.pid
#日志文件
lock file = /var/run/rsync.lock
#日志文件
log file = /var/log/rsyncd.log
#模块开始
#这个模块对应的是推送目录
#模块名称随便起
[backup]
#需要同步的目录
path = /backup/
#表示出现错误忽略错误
ignore errors
#表示网络权限可写(本地控制真正可写)
read only = false
#这里设置IP或让不让同步
list = false
#指定允许的网段
hosts allow = 123.125.5.30/24
#拒绝链接的地址,一下表示没有拒绝的链接。
hosts deny = 0.0.0.0/32
#不要动的东西(默认情况)
#虚拟用户
auth users = root
#虚拟用户的密码文件
secrets file = /etc/rsync.password
#配置文件的结尾
#rsync_config_______________end
服务端密码/etc/rsync.password

设置服务端密码

[root@cloud backup]# cat /etc/rsync.password 
root:a1755b20c452
[root@cloud backup]# chmod 600 /etc/rsync.password 

启动服务端监听

/usr/bin/rsync -c /etc/rsyncd.conf --daemon

rsync客户端配置

环境需求

rsync + inotify apt-get install inotify-tools apt-get install rsync

监听脚本

#!/usr/bin/env bash

host=test.ydl.com
src=/backup/        ## 需要备份的目录
des=backup          ## 远程模块
user=root           
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \
| while read files; do
    /usr/bin/rsync -vzrtopg --delete --progress --password-file=/tmp/rsync.passwd $src $user@$host::$des
    echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
done

设置密码,密码文件

root@debian:/mnt# cat /tmp/rsync.passwd  
#a1755b20c452

测试

root@debian:/backup# touch ab > /backup/a

日志文件返回结果

sending incremental file list
a
           5 100%    0.00kB/s    0:00:00 (xfer#1, to-check=1/4)
sent 111 bytes  received 27 bytes  276.00 bytes/sec
total size is 5  speedup is 0.04

最后需要做的就是设置脚本服务器自启动

0 comments

To reply to the article, please Login or registered