周梦康 发表于 2014-04-28 4289 次浏览 标签 : Linuxrsync

需要被同步的服务器上的配置

先安装

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

评论列表