一、简介
rsync一款开源的,快速的,多功能可实现全量及增量的本地或者远程数据同步备份的优秀工具可适用于多个操作系统之上,rsync具有可以使本地和远程两台主机之间的数据快速的同步和备份的用能。
二、工作模式及其特性
1.rsync特性
支持拷贝特殊文件如链接文件设备等
可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能 --exclude
可以实现增量同步,即只同步发生变化的数据,因此效率很高
实时备份和定时备份
2.rsync命令的工作模式:
1)shell模式,也称为本地模式
2)远程shell模式,此时可以利用ssh协议来保证数据传输的安全
3)列表模式,其工作方式与ls相似,仅列出源的内容
4)服务器模式,此时,rsync可以工作为守护进程,能够接收客服端的数据传输请求;在使用时,可以在客户端使用rsync命令把文件发送给守护进程,也可以向服务器请求获取文件。
3.rsync常用选项
rsync命令:
rsync —a fast,versatile(通用的),remote(and local)file-copying tool
常用选项:
-n:测试是否能执行成功
-v:显示详细的过程
-a:归档
-z:在传输的过程中压缩
-r:递归复制
-P:保持原有属性
-p:perm,保持原有权限
-e:ssh,表示使用ssh的加密功能
-q:quit,静默模式
-g:保留原文件的属组
-o:保留原文件的属主
-l:保留原文件的连接文件
用法演示:
本地间的数据传输:
删除:rsync -avzP --delete /tmp
复制:rsync -avzP /etc/hosts /tmp
推:rsync -avzP -e ‘ssh -p 22‘ /tmp/ [email protected]:/tmp
拉:rsync -avzP -e ‘ssh -p 22‘ [email protected]:/tmp /opt
推:rsync -r -avzP -e ssh /tmp/etc [email protected]:/tmp
拉:rsync -avzP -r -e ssh [email protected]:/tmp/etc /tmp/
# rsync -r /mydata/data /backups/ : 会把目录data直接同步backups目录中
# rsync -r /mydata/data/ /backups/: 会把目录data/中的内容的同步至/backups目录中
注意:rsnc命令在使用中,如果源参数的末尾没有斜线,就复制指定目录里面的内容,包括目录本身,目标参数末尾的参数没有作用。rsync命令使用中,如果源参数的末尾有斜线,就会复制指定目录的内容,而不复制目录本身;
三、配置rsync服务实现远程主机之间数据传输
1.服务端配置
1)安装软件:rsync、xinetd,超级守护进程配置文件在/etc/xinetd文件中
yum -y install rsync xinetd
2)创建rsync配置文件
#rsync server start# uid = nobody gid = nobody use chroot = no max connections = 10 strict modes = yes pid file = /var/run/rsyncd.pid log file = /var/log/rsyncd.log #directory to be backup or synced [synced_name] path = /path/to/some_dir ignore errors = yes read only = no write only = no hosts allow = white_list_ip/net hosts deny = * 说明: 1、二者都不出现时,默认为允许访问; 2、只出现hosts allow: 定义白名单;但没有被匹配到的主机由默认规则处理,即为允许; 3、只出现hosts deny: 定义黑名单;出现在名单中的都被拒绝; 4、二者同时出现:先检查hosts allow,如果匹配就allow,否则,检查hosts deny,如果匹配则拒绝;如二者均无匹配,则由默认规则处理,即为允许; list = false uid = root gid = root auth users = username secrets file = /etc/rsyncd.passwd
3)配置密码文件/etc/rsyncd.password
格式:username:password 文件权限600
4)配置服务启动
chkconfig rsync on
service xinetd start
5)检查监听的端口:873
ss -tnl |grep 873
2.客服端配置
1)配置密码文件/etc/rsyncd.password
格式:password 文件权限600
3.在客户端进行测试,如果需要周期性操作,则需要将命令写入crontab中
Pull: rsync [OPTION...] [[email protected]]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[[email protected]]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [[email protected]]HOST::DEST
rsync [OPTION...] SRC... rsync://[[email protected]]HOST[:PORT]/DEST
图示:
配置:
测试:
本文小耳朵原创作品,每天进步一点点:)
本文出自 “小耳朵” 博客,请务必保留此出处http://purify.blog.51cto.com/10572011/1854879