rsync是一款开源,快速,多功能的可实现增量的本地或远程的数据镜像同步备份的优秀工具。适用于多个平台。从软件名称可以看出来是远程同步的意思(remote sync)。可使本地主机不同分区或目录之间及本地和远程两台主机之间的数据快速同步镜像,远程备份等功能。在同步备份时,默认情况下,rsync通过其独特的“quick check”算法,仅同步大小或者最后修改时间发生变化的文件或目录(也可根据权限,属主等变化同步,需要制定参数)。甚至是只同步一个文件里变化的内容部分,所以可以实现快速的同步数据的功能。
提示:传统的cp,scp工具拷贝每次均为完整拷贝,而rsync除了完整拷贝,还具备增量拷贝的功能,因此从此性能及效率上更胜一筹
结合下面的拓扑图
1) 源服务器A
源服务器A为CentOS6.7 64位Linux操作系统
位于路由器NAT后
内网IP:192.168.50.253
外网出口IP:101.71.254.162
2)目标服务器B
目标服务器B为CentOS6.7 64位Linux操作系统
公网IP:101.132.116.99
3)功能实现:
将源服务器A上/temp/source_files目录下的所有文件同步到目标服务器B的/home/backup目录下
主要操作步骤
1、先在目标服务器B上安装rsync xinetd 服务端
[root@YuanFan-Aliyun ~]# yum -y install rsync xinetd
2、目标服务器B上编辑配置文件,设置开机启动rsync
[root@YuanFan-Aliyun ~]# vi /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = yes#默认是yes 修改成no
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
然后wq保存退出
4、目标服务器B上设置开机启动xinetd服务
[root@YuanFan-Aliyun ~]# chkconfig xinetd on
[root@YuanFan-Aliyun ~]# chkconfig xinetd --list
xinetd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
CentOS中是以xinetd来管理Rsync服务的,手动启动xinetd服务,当然也可以用service xinetd start服务的方式进行启动
[root@YuanFan-Aliyun ~]# /etc/rc.d/init.d/xinetd start
Starting xinetd: [ OK ]
[root@YuanFan-Aliyun ~]#
5、目标服务器B上创建rsyncd.conf配置文件,默认是没有该配置文件,手动vi编辑一份
[root@YuanFan-Aliyun ~]# vi /etc/rsyncd.conf
#any name you like
[website]
# destination directory
path = /home/backup
# Hosts you allow to copy (specify source Host)
hosts allow = 101.71.254.162#允许进行数据同步的客户端IP地址,根据上面的拓扑图,应为路由器NAT出口IP地址101.71.254.162
hosts deny = *
list = true
uid = root
gid = root
read only = false
6、源服务器A端上只需要安装rsync客户端软件就可以
[root@localhost ~]# yum install -y rsync
7、测试源服务器A到目标服务器B之间的数据同步 rsync命令的使用
[root@localhost ~]# rsync -avz /temp/source_files/ 101.132.116.99::backup
rsync的参数说明
-v :详细输出
-z :传输时进行压缩以提高传输效率。
-a :归档模式,表示以递归的方式传输文件,并保持文件的属性
[root@localhost ~]#rsync -avz --progress --partial /temp/source_files/ 101.132.116.99::backup
--progress 显示备份过程,进度条功能
--partial 意思是keep partially transferred files 断点续传,这个比较实用
如下图所示
8、将rsync加到crontab定时任务
# Add in cron if you'd like to run reguraly
[root@localhost ~]#
crontab -e
# run at 2:00 AM in a day
00 02 * * * rsync -avz --progress --partial /temp/source_files/ 101.132.116.99::backup
下面是rsync命令常用的参数
rsync的功能强大,现只做基础的介绍,有兴趣的的可以访问
领取专属 10元无门槛券
私享最新 技术干货