rsync是类unix系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。
文章主讲实际操作,不再进行详细叙述,想要了解更多可以查看百度百科。<
一、提前说明:
以在两台服务器之间建立定时同步为例,将服务器A /home/jack 路径下的内容备份到服务器B /home/test 路径下
设置定时同步时间为5分钟
二、配置过程:
服务端(即服务器A):
- 安装rsync:yum -y install rsync
- ln -s /etc/rsyncd.conf
- 编写rsync的配置文件:vim rsyncd.conf
解析如下:
uid = root #root用户访问(我这里用ROOT用户,也可以用其他新建的用户)
gid = root #root组用户访问
port=871 #通过端口873
use chroot = yes #可以使用chroot
read only = no #可读写
max connections = 4 #最大连接数
list = no #不列出文件清单
pid file = /var/run/rsyncd.pid #此步可没有此文件
timeout = 900
lock file = /var/run/rsyncd.lock #此步可没有此文件
log file = /var/log/rsyncd.log #此步可没有此文件
[backup] #发布项(注意这个命名)
comment = this is module for backup #模块介绍,可删去
path = /home/jack/ #发布的路径
ignore errors
auth users = root #认证用户为root
secrets file = /etc/rsyncd.pass #密码文件
4. 编写用户密码文件:echo “root:111” > /etc/rsyncd.pass
(root:上一步设置的登录用户名;111:文件的密码自己随意设,但要记住,接下来需要用到;此步创建了rsyncd.pass文件)
- 修改密码文件的权限(此步很重要,且只能是600):chmod 600 /etc/rsyncd.pass
- 启动rsyncd服务
service rsyncd start
- 查看进程占用端口:netstat -tunlp
(启动rsyncd服务后会显示873端口被rsync占用)
客户端(即服务器B):
1.yum -y install rsync
2.echo “root:123” > /etc/rsyncd/rsyncd.pass
(root:用户名可不写,如果写,必须要和服务端设置的第3步中设置的用户名一致;
111:密码,必写,要和服务端设置的第4步中的密码一致)
3.chmod 600 /etc/rsyncd.pass
4.创建存放备份文件的路径:mkdir /home/backups
(路径自己随意设)
5.每隔5分钟将服务器A中的backup模块目录下的文件(我们设置的是/home/jack)同步到本地下(我们设置的是/home/backups)
1> ssh-keygen -t dsa -b 1024
2> 将id_dsa.pub里面的内容添加到B机的authorized_keys文件中
cat /root/.ssh/id_dsa.pub >> authorized_keys
3> 创建一个需要定时执行的脚本文件,如:rsyncd.sh脚本:vi /etc/rsyncd.sh
(路径自己设置的),在此脚本中添加如下内容:(命令的每条含义文档最后有解释)
rsync -auv --password-file=/etc/rsyncd.pass root@192.168.22.99::backup /home/test/
4> 设置脚本执行的时间:crontab –e,添加如下内容
*/5 * * * * sh /etc/rsyncd.sh #第5分钟执行一次同步;
到此,同步配置基本完成,正常情况下每5分钟就会同步一次
也可直接输入同步命令检查是否能够同步,命令格式为:
rsync命令格式:rsync [option] 源路径 目标路径
例如:
将服务器A backup模块下要备份的文件同步到本地/home/test目录下:
rsync -auv --password-file=/etc/rsyncd.pass root@192.168.22.99::backup /home/test/
正常情况下,同步成功会显示以上信息。