现在有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