Centos7 搭建rsync+inotify 远程数据同步
IP:192.168.6.120 NAS备份服务器
IP:192.168.6.100 需备份客户端
服务端安装配置
一、inotify-slave部署 (NAS备份服务器)
IP:192.168.6.120 NAS备份服务器
yum install -y rsync #安装rsync
nano /etc/rsyncd.conf #更改配置文件#工作中指定用户(可以不指定为0)
uid = 0
gid = 0
#相当于黑洞.出错定位
use chroot = no
##有多少个客户端同时传文件
max connections =200
##超时时间
timeout = 500
##进程号文件
pid ifle = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
##日志文件
log file = /var/log/rsyncd.log
##模块开始(这个模块就是待会儿对端写脚本的里面一个参数的名称)
[bakname]
##需要同步的目录(准确的说是同步过来后放到哪里的目录路径)
path = /home/www
##表示出现错误忽略错误
ignore errors
##表示网络权限可写(本地控制真正可写)(亲测这里写false报错)
read only = no
##这里设置IP或让不让同步
list = false
#允许的ip或者ip段
hosts allow = 192.168.6.100
##拒绝,以下表示都不拒绝
hosts deny = 0.0.0.0/32
##认证用户
auth users = rsynclsl
##用户名和密码存放文件
secrets file = /etc/rsync.secretsuseradd -s /sbin/nologin rsynclsl #添加用户
passwd rsynclsl #设置密码nano /etc/rsync.secrets #创建认证文件
rsynclsl:123456chmod 600 /etc/rsync.secrets #设置文件权限
iptables -I INPUT -p tcp --dport 873 -j ACCEPT #打开80端口的访问权限
service iptables save #保存设置,不保存重启将丢失添加端口
/etc/init.d/iptables restart #重启防火墙rsync --daemon --config=/etc/rsyncd.conf #启动服务
netstat -nultp #端口查看
客户端安装配置
IP:192.168.6.100
yum install -y rsync #安装rsync只安装不启动不配置
#安装inotify
cd
wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
tar zxf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure --prefix=/usr/local/include/
make && make installnano inotify.sh
#!/bin/bash
#chkconfig: 345 88 14
host=192.168.6.120 #server的ip(备份服务器)
src=/home/www #所要监控的备份目录(此处可以自定义,但是要保证存在)
des=bakname #自定义的模块名,需要与client端定义的一致
password=/etc/rsync.password #密码文件
user=rsynclsl #用户名(一个实际存在的账号)
inotify=/usr/local/include/ #inotify的安装目录${inotify}/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \
| while read files
do
rsync -avzP --delete --timeout=100 --password-file=${password} $src $user@$host::$des
echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
donechmod 755 inotify.sh
nano /etc/rsync.password #创建认证文件只需填写密码
123456chmod 600 /etc/rsync.password #设置文件权限
./inotify.sh #执行脚本
rsync -avH --port=873 --delete /home/www/ rsynclsl@192.168.6.120::bakname --password-file=/etc/rsync.password #若脚本有问题测试语句
还没有人抢沙发呢~