需要被同步的服务器上的配置
先安装
wget http://rsync.samba.org/ftp/rsync/src/rsync-3.1.0.tar.gz cd rsync-3.1.0/ ./configure --prefix=/usr/local/rsync make make install
安装完毕make test
测试下,没有问题之后,配置/etc/rsyncd.conf
文件,该文件默认不存在,手动vi生成即可。
#运行RSYNC守护进程的用户 uid = root #运行RSYNC守护进程的组 gid = root #不使用chroot use chroot = no #最大连接数是4 max connections = 4 #pid文件存放位置 pid file = /var/run/rsyncd.pid #锁文件存放位置 lock file = /var/run/rsync.lock #日志文件存放位置 log file = /var/log/rsyncd.log [logs] #要同步的目录 path = /mnt/hgfs/code/test #忽略无关的IO错误 ignore errors #只读,不能上传 read only = true #禁止查看文件列表 list = false #允许访问服务的ip hosts allow = 192.168.56.136 #禁止访问服务的ip #hosts deny = 0.0.0.0/32 #认证的用户名,系统必须存在的用户,但是密码需要在secrets file 配置,不是系统的密码。 auth users = root #认证用户密码文件,配置auth users的密码 secrets file = /etc/backserver.pas
配置密码文件/etc/backserver.pas
(也是需要手动创建),而且需要将该文件的权限修改为600,属主和属组都是root
vi /etc/backserver.pas root:123456789
chown root:root /etc/backserver.pas chmod 600 /etc/backserver.pas
启动rsync服务/usr/bin/rsync --daemon
(通过ps aux |grep rsync
来查看程序是否已经启动);
并将其设置为开启启动
echo "/usr/bin/rsync --daemon" >> /etc/rc.d/rc.local
可以通过vi /etc/rc.d/rc.local查看是否有追进进去(这里我本来看别人的文章说是echo "/usr/bin/rsync --daemon" >> /etc/rc.local
,我发现不能自启动。查了下,似乎别人的系统里/etc/rc.local
是/etc/rc.d/rc.local
的软链接,但是我的不是,所以我尝试写入到后者,测试自启动成功)。
至此需要被同步的服务器上的配置完毕。
同步操作服务器上的配置
首先生成一个密码配置文件,需要和源数据服务器上面的密码保持一致,vim /etc/rsyncd.secretes
(文件不存在,vi手动生成)。只需要填写密码即可(例如上面的123456789)该文件的权限也需要保持为600(chmod 600 /etc/rsyncd.secretes
)
使用crontab来实现每天凌晨4点更新(这个时候服务器压力稍微小些)先执行crontab -e
然后输入
00 04 * * * rsync -vzrtopg --progress --delete --password-file=/etc/rsyncd.secretes root@192.168.56.135::logs /data/test
保存退出,这样就把远程服务器下的/mnt/hgfs/code/test
(在源数据服务器的/etc/rsyncd.conf里面配置的)的数据同步到了远程服务器下的/data/test
了。可以通过vi /var/spool/cron/username
(如果username是root,路径则是/var/spool/cron/root
)查看计划任务。
如需配置多个目录同步,请参考:http://mengkang.net/159.html
基本参考的这篇文章:http://www.nginx.cn/980.html
实时同步文章(未测试):http://www.osyunwei.com/archives/7435.html