一,服务端安装(备份服务器):
#安装rsync cd /usr/local/src/ wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz tar zxvf rsync-3.0.9.tar.gz cd rsync-3.0.9 ./configure --prefix=/usr/local/rsync make && make install #新建用户与密码认证文件 echo "backup:backup" > /usr/local/rsync/rsyncd.passwd chmod 600 /usr/local/rsync/rsyncd.passwd #新建rsync配置文件 cat > /usr/local/rsync/rsyncd.conf <<EOF uid = root gid = root use chroot = no max connections = 4 strict modes = yes hosts allow = 192.168.1.101 #可以空格,允许多个 port = 873 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log [test] #当前服务器要同步到此的目录(/home/jerome/test ) path = /home/jerome ignore errors read only = false list = false auth users = backup secrets file = /usr/local/rsync/rsyncd.passwd #PS:注意这里要将read only 修改为 false, 因为是要将文件同步到该模块的,必须可写 EOF #以守护进程方式启动rsync服务器 rsync --daemon --config=/usr/local/rsync/rsyncd.conf #我们可以把rsync脚本加入到开机启动项里 echo "/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.conf" >> /etc/rc.local
二,检查rsync 是否正常启动:
[root@localhost rsync]# netstat -tnlp | grep 873 tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 1474/rsync tcp6 0 0 :::873 :::* LISTEN 1474/rsync
三,客户端安装(源服务器)
#安装rsync
cd /usr/local/src/ wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz tar zxvf rsync-3.0.9.tar.gz cd rsync-3.0.9 ./configure --prefix=/usr/local/rsync make && make install echo "backup" > /usr/local/rsync/rsync.passwd chmod 0600 /usr/local/rsync/rsync.passwd
#安装inotify
yum install inotify-tools -y
四,同步脚本
#!/bin/bash host=192.168.1.102 #server的ip(备份服务器) src=/home/test/ #server端要实时监控的目录(/home/test),des是认证的模块名,需要与client的des一致 des=test user=backup 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 --progress --password-file=/usr/local/rsync/rsync.passwd $src $user@$host::$des echo "${files} was rsynced" >>/data/logs/rsync.log 2>&1 done
运行:
sh /usr/local/rsync/inotify_rsync.sh &