yum install rsync #一般较新版本的Centos都已经安装了rsync
yum install xinetd
vi /etc/xinetd.d/rsync
#修改如下代码
service rsync
{
disable =
no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = –daemon
log_on_failure += USERID
}
service xinetd start
chkconfig xinetd on
xinetd是可以将rsync以服务的形式启动,但是网上的资料说这种方式不能更改rsync的侦听端口,只能以默认的873端口运行。我以命令方式启动服务,所以没有对这种方式进行测试
【服务器端】
vi
/etc/rsyncd.conf #这个文件需要创建
#Global Settings
uid = root #以什么身份运行rsync
gid = root
use chroot = no #不使用chroot
max connections = 20 #最大连接数
secrets file = /etc/rsyncd.secrets #密码文件位置,认证文件设置,设置用户名和密码
log file = /var/log/rsyncd.log #指定rsync的日志文件,而不将日志发送给syslog
pid file = /var/run/rsyncd.pid #指定rsync的pid文件
lock file = /var/run/rsync.lock #指定支持max
connections参数的锁文件,默认值是/var/run/rsyncd.lock
comment = hello world
#motd file = /etc/rsyncd.motd #欢迎信息文件名称和存放位置(此文件没有,可以自行添加)
[pro1] # 这里是认证的模块名,在client端需要指定
path = /rfdw/www/repos # 需要做镜像的目录
auth users = rsyncuser # 授权帐号。认证的用户名,如果没有这行,则表明是匿名,多个用户用,分隔
read only = no # yes只读 值为NO意思为可读可写模式,数据恢复用NO
hosts allow = 212.178.3.128 #允许访问的服务器IP
hosts deny = * #黑名单
list = true # 允许列文件
#ignore errors # 可以忽略一些无关的IO错误
#exclude = cache/111/ cache/222/ #忽略的目录
[pro2]
path = /add/www/vgrd
auth users = rsyncuser
read only = no
hosts allow = 212.178.3.128
hosts deny = *
list = true
#ignore errors
#exclude = cache/111/ cache/222/
[pro3]
path = /data/www/yudfg
auth users = rsyncuser
read only = no
hosts allow = 212.178.3.128
hosts deny = *
list = true
#ignore errors
#exclude = cache/111/ cache/222/
vi /etc/rsyncd.secrets #文件需要创建
rsyncuser:qwert12345 #用户名与/etc/rsyncd.conf文件里的auth users用户名相同
chmod 600
/etc/rsyncd.secrets #必须执行这个权限,否则会报错
/usr/bin/rsync --daemon --config=/etc/rsyncd.conf --port 45678
将命令写入/etc/rc.local让rsync开机启动
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 45678 -j ACCEPT #打开防火墙
终止服务 killall -9 rsync
rm -rf
/var/run/rsyncd.pid
tail -100 /var/log/rsyncd.log #实时查看日志的最后100行
【客户端】
yum install rsync
vi /etc/rsyncd.pas
qwert12345 #只需要密码,与服务器相同
chmod 600 /etc/rsyncd.pas #必须执行这个权限,否则会报错
/usr/bin/rsync -artuz --delete -R --port=45678 rsyncuser@212.178.3.128::pro1 --password-file=/etc/rsyncd.pas /backup/pro1/
/usr/bin/rsync -artuz --delete -R --port=45678 rsyncuser@212.178.3.128::pro2 --password-file=/etc/rsyncd.pas /backup/pro2/
/usr/bin/rsync -artuz --delete -R --port=45678 rsyncuser@212.178.3.128::pro3 --password-file=/etc/rsyncd.pas /backup/pro3/
--delete的意思是如果服务器上有删除的文件那么也相应的执行删除
第一次执行时间会比较长,再次执行速度就会快了,因为再次执行是比较差异的,这就实现了增量备份。
可以将命令写入定时任务
crontab -e
*/5 * * * * /usr/bin/rsync -artuz --delete -R --port=45678 rsyncuser@212.178.3.128::pro1 --password-file=/etc/rsyncd.pas /backup/pro1/
#每5分钟执行一次就基本实现数据的同步了
30 23 * * * /usr/bin/rsync -artuz --delete -R --port=45678 rsyncuser@212.178.3.128::pro2 --password-file=/etc/rsyncd.pas /backup/pro2/
#也可以每天23:30执行增量备份计划
阅读(2417) | 评论(0) | 转发(1) |