本节介绍的内容为:使用rsync+inotify-tools配置文件单向同步的方法。
一,server端安装rsync inotify-tools
复制代码 代码示例:
[root@
nginx src]# tar zxvf rsync-3.0.9.tar.gz
[root@nginx src]# cd rsync-3.0.9
[root@nginx rsync-3.0.9]# ./configure --prefix=/usr/local/rsync
[root@nginx rsync-3.0.9]# make && make install
二,建立密码文件
复制代码 代码示例:
[root@nginx ~]# echo "NteS0btuJ7rCg" >> /etc/server.pass
[root@nginx ~]# cat /etc/server.pass
NteS0btuJ7rCg (另一台机器www密码 为了权限及文件所有者考虑server端与client的www账号uid gid 均一样)
[root@nginx rsync]# chmod 600 /etc/server.pass
[root@nginx src]# tar zxvf inotify-tools-3.14.tar.gz
[root@nginx src]# cd inotify-tools-3.14
[root@nginx inotify-tools-3.14]# ./configure --prefix=/usr/local/inotify
[root@nginx inotify-tools-3.14]# make && make install
三,创建rsync复制脚本
将server端的目录/www里的内容,如果修改了(无论是添加、修改、删除文件)能够通过inotify监控到,并通过rsync实时的同步给client的/www里。
实现此操作的shell/ target=_blank class=infotextkey>shell脚本:
复制代码 代码示例:
#!/bin/bash
src=/www/
des=www
ip=192.168.1.251
/usr/local/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/local/rsync/bin/rsync -vzrtopg --delete --progress $src www@$ip::$des --password-file=/etc/server.pass &&
echo "$src was rsyncd" >>/tmp/rsync.log 2>&1
done
后台运行脚本:
复制代码 代码示例:
另外,可以把rsync.sh脚本加入到开机启动项中:
复制代码 代码示例:
[root@nginx tmp]# echo "/tmp/rsync.sh" >> /etc/rc.local
四、客户端只安装rsync 与服务器端安装一样
复制代码 代码示例:
[root@nginx src]# tar zxvf rsync-3.0.9.tar.gz
[root@nginx src]# cd rsync-3.0.9
[root@nginx rsync-3.0.9]# ./configure --prefix=/usr/local/rsync
[root@nginx rsync-3.0.9]# make && make install
五、建立密码文件
复制代码 代码示例:
[root@web2 ~]# touch /etc/server.pass
[root@web2 www]# cat /etc/server.pass
www:NteS0btuJ7rCg
[root@web2 rsync]# chmod 600 /etc/server.pass
六、在rsync的安装路径里面添加配置文件rsyncd.conf
复制代码 代码示例:
uid = root
gid = root
user chroot = no
max connetction = 200
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/run/rsyncd.log
[www]
path = /www
ignore errors
read only = no
list = no
auth user = www
secrets file = /etc/rsyncd.password
七、启动客户端rsync服务
复制代码 代码示例:
/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.conf
把rsync脚本加入到开机启动项中:
复制代码 代码示例:
[root@nginx-backup rsync]# echo "/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsync.conf" >> /etc/rc.local
客户端关闭防火墙或添加防火墙规则:
复制代码 代码示例:
iptables -I INPUT -p tcp --dport 873 -j ACCEPT
接下来就是测试环节了,可以测试在server端修改文件、修改权限等,客户端均跟着发生变化。