现在有A,B俩个服务器

A:192.168.0.1 

B:  192.168.0.2

我们在A服务器上作为rsync的服务端

centos 自带rsync 服务

A服务器操作:

vi /etc/rsyncd.conf 

uid = root  
gid = root
port = 873
hosts allow = 192.168.0.2   #
该选项指定哪些IP的客户允许连接该模块
use chroot = yes    #如果"use chroot"指定为true,那么rsync在传输文件以前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺 点是需要以roots权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true。
max connections = 10   #指定该模块的最大并发连接数量以保护服务器,超过限制的连接请求将被告知随后再试
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
timeout = 600  #
通过该选项可以覆盖客户指定的IP超时时间

[blog]  #模块名
path = /home/www/blog  #
指定该模块的供备份的目录树路径
comment = my blog  #给模块指定一个描述
ignore errors  #指定rsyncd在判断是否运行传输时的删除操作时忽略server上的IP错误,一般来说rsync在出现IO错误时将将跳过--delete操作,以防止因为暂时的资源不足或其它IO错误导致的严重问题
read only = no  #该选项设定是否允许客户上载文件
list = no  #该选项设定当客户请求可以使用的模块列表时,该模块是否应该被列出
auth users = backup  #该选项指定由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块
secrets file = /etc/backup.passwd  #该选项指定一个包含定义用户名:密码对的文件。格式 user:password    设置权限600

配置完成后,开启服务

rsync --daemon
 

我们使用B服务器当作客户端

B服务器操作:

首先在B服务器新建密码文件,这样不用每次都输入密码操作

vi /etc/backup.passwd  #密码是A服务器中/etc/backup.passwd设置的密码,不用加用户名 格式 password

chmod 600 /etc/backup.passwd

 

#从A服务器的blog模块下载到B服务器(本地)的 /home/www/blog目录

/usr/bin/rsync -vzrtopg  --progress backup@192.168.0.1::blog /home/www/blog --password-file=/etc/backup.passwd

#从B服务器的 /home/www/blog/ 目录上传到 A服务器的blog模块

/usr/bin/rsync -vzrtopg --progress /home/www/blog/  backup@192.168.0.1::blog --password-file=/etc/backup.passwd  

 

记得开启A,B俩台服务器都开启873端口

-A INPUT -p tcp -m tcp --dport 873 -j ACCEPT  #添加到 /etc/sysconfig/iptables 里,重新启动 iptables