下载地址: wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz
wget http://sourceforge.net/projects/inotify-tools/files/inotify-tools/3.13/inotify-tools-3.13.tar.gz/download
服务器
A:ip 192.168.64.113 B:ip 192。168.64.114;
测试目录为 /opt/dhtest 目的在A上创建一个文件可以同时同步到B上;
A服务器上安装rsync和inotif;
1、安装rsync;
# tar zxvf rsync.
#cd rsync
#./configura #make # make install
安装完成 可以在/usr/bin/rsync或在/usr/local/bin/rsync可以看到;
2、安装 inotif,
#tar zxvf inotify.
#cd inotify
# ./configure #make #make install
安装完成 可以在[root@localhost ~]# find /usr/local/bin/inotifywa 看到有这两个文件
inotifywait inotifywatch
B服务器上安装 rsync;
1安装rsync;
# tar zxvf rsync.
#cd rsync
#./configura #make # make install
安装完成 可以在/usr/bin/rsync或在/usr/local/bin/rsync可以看到;
下面进行配置
在B服务器上配置
1启动rsync
#vi /etc/xinetd.d/rsync
把原来的YES改成NO
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/local/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
随系统启动RSYNC
#chkconfig rsync on
2、配置/etc/rsyncd.conf(需要手动生成) 必须在etc/下
rsyncd.conf的参数写在上边就是全局参数和写在模块里的就是模块参数
#vi /etc/rsyncd.conf
uid = root //运行rsync守护的进程的用户
gid = root //运行RSYNC守护进程的组
use chroot = no//不使用chroot
max connections = 10 // 最大连接数为10
strict modes = yes//是否检查口令文件的权限
pid file = /var/run/rsyncd.pid //pid文件的存放位置
lock file = /var/run/rsync.lock//锁文件的存放位置
log file = /var/log/rsyncd.log//日志记录文件的存放位置
[dhtest]//这里是认证的模块名,在client端需要指定
path=/opt/dhtest///需要做镜像的目录,不可缺少!
comment = 114 de test//这个模块的注释信息
ignore errors//可以忽略一些无关的IO错误
read only = no// 是否只读(yes、no)
list = no //不允许列文件
hosts allow = 192.168.64.113//允许主机
hosts deny = 0.0.0.0/0//禁止主机
auth users = dhtest //认证的用户名,如果没有这行则表明是匿名,此用户与系统无关
secrets file = /opt/dhmm.pass //密码和用户名对比表,密码文件自己生成 格式为:用户名:密码 [root@localhost ~]# cat /opt/dhmm.pass dhtest:artron
###/etc/rsync.pas(名字随便写,只要和上边配置文件里的一致即可),格式(一行一个用户)
3、启动rsync
#/usr/local/bin/rsync --daemon
为了开机自启动 在/etc/rc.local添加 /usr/local/bin/rsync --daemon
A服务器进行配置
编辑脚本如下
#/bin/bash
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib /opt/dhtest | while read files
do
/usr/local/bin/rsync -ztopg --progress /opt/dhtest/* [email protected]::dhtest --password-file=/etc/dh.pass
echo "${files} was rsynced" >> /tmp/rsync.log 2>&1
done
完成
其中/etc/dh.pass是密码文件 内容是artron
赋予dh.pass权限 #chmod 600 dh.pass
执行脚本
进行测试