设为首页 收藏本站
查看: 622|回复: 0

[经验分享] rsync服务与搭建详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-10-18 08:20:39 | 显示全部楼层 |阅读模式
rsync介绍
rsync全称remote sync,是一种更高效、可以本地或远程同步的命令,之所以高效是因为rsync会对需要同步的源和目的进度行对比,只同步有改变的部分,所以比scp命令更高效,但是rsync本身是一种非加密的传输,可以借助-e选项来设置具备加密功能的承载工具进行加密传输
rsync的工作模式
rsync有四种工作模式分为:
1、shell模式,也称作本地模式
2、远程shell模式,此时可以利用ssh协议承载其数据传输过程
3、列表模式,其工作方式与ls相似,仅列出源的内容:-nv
4、服务器模式,此时,rsync可以工作在守护进程,能够接收客户端的数据请求;在使用时,可以在客户端使用rsync命令把文件发送到守护进程,也可以像服务器请求获取文件
rsync命令选项
-n:测试,在不确定命令是否能按照意愿执行时,务必要实现测试
-v:详细输出模式,--verbose
-q:--quiet,静默模式
-c:--checksum,开启校验功能,强行对文件传输进行校验
-r:--recursive,递归复制
-a: --archives.归档,保留文件的原有属性相当于rlptgoD的选项组合 wKioL1gEMvXRMZ5SAAAitet95ug281.jpg -p:--perms 保留文件的权限
-t: --times 保留文件的时间戳
-l:--links 保留文件的符号链接
-g:--group保留文件的属组
-o:--owner 保留文件的属主
-D:--devices 保留设备文件
-e ssh:表示使用ssh协议作为继承
-z:对文件压缩后传输
--progress:显示进度条
根据同步的方向不同,分为推、拉两种方式,其命令用法为: wKiom1gEMvbRkULxAABsJHLg7sA575.jpg
此处需要注意的地方有两点:
1、如果使用命令时只指定源而不指定目标,仅会将源以列表的形式显示而不同步
2、rsync命令使用中,如果源参数的末尾有斜线,只会复制指定目录的内容,而不复制目录本身,没有斜线,则会复制目录本身,包括目录
wKioL1gEMvbBhYW8AAAqN1fsmoE538.jpg
wKioL1gEMvbwOMcEAABNBYjmafE850.jpg
rsync生产环境使用方式
在中小企业的生产环境中经常有这么一种需求,A服务器上的某些重要文件需要每天备份到B服务器上,此时就可以使用rsync+crontab来进行备份,其步骤为: wKiom1gEMvfQYbxZAABOT_yvU74642.jpg
1、配置rsync服务器端
yum -y install xinetd   rsync是位于xinetd守护进程中
2、vim /etc/rsyncd.conf        创建rsync的配置文件 wKioL1gEMvfgz6MaAAArMUDk9-g415.jpg
3、配置文件分为全局配置段和模块配置段,注意配置文件内的设置项使用格式 wKiom1gEMvegErnxAAAlocZSUVU295.jpg
#Global Parameters
pid file = /var/run/rsyncd.pid          设置rsync运行时pid文件的位置
log file = /var/log/rsyncd.log          设置rsync运行时log文件的位置
lock file = /var/run/rsyncd.lock  设置rsync运行时lock文件的位置
uid = nobody       
gid = nobody       
uid和gid这两个选项的作用是指定在运行rsync时以哪个用户来替代root,nobody是系统默认值,不存在于系统用户中,如果此处设置为nobody,则在模块配置段依然需要指定一个系统用户来运行rsync wKiom1gEMvjTE_0NAABeLInSDKY030.jpg
ignore errors = yes        是否忽略错误
list = no        是否允许列出名单
#Module Parameters       
[module_name]        服务器模式下rsync目的名称(DES)使用的是模块名称
path = /path/to/some_dir
uid = root       
gid = root       
如果全局配置段的uid和gid设置时不是nobody而是使用的一个系统账户,在模块配置段这两个选项可以不添加这两个选项
max connections = 5        最大连接用户数
timeout = 300        超时时间
read only = false        只读,适用于Client端pull场景
write only = false        只写,适用于Client端push场景
auth users = username 允许链接该模块的用户,该用户是虚拟用户可以不存在 wKioL1gEMvjS8GtzAABrRjLW6G0588.jpg
secrets file = /etc/rsync.passwd  用户密码(auth user)的存放文件
strict modes = yes        检查secrets file文件的权限是否满足要求 wKiom1gEMviQRr58AABHNDMV6DI511.jpg
use chroot = no        是否禁锢用户家目录
max connections = 4        最大连接数
hosts allow = ipaddress/netmask   白名单
hosts deny = ipaddress/netmask   黑名单
此处需要注意:
(1)默认规则为允许访问,二者都不出现时
(2)只出现hosts allow:定义白名单;但没有被匹配到的由默认规则处理,即为允许
(3)只出现hosts deny:定义黑名单;出现在名单中的都被拒绝
(4)二者同时出现,先检查hosts allow,如果匹配就allow,否则,检查hosts deny 如果匹配则拒绝,如二者均无匹配,则使用默认的,即允许
4、为auth user用户创建secrets file文件存放账号和密码,
vim /etc/rsync.passwd    账号可以不存在,密码可以任意设置 wKioL1gEMvjSKIsCAAAExbkKs_k395.jpg
5、因为开启了strict modes = yes,所以要修改/etc/rsync.passwd文件权限
chmod 600 /etc/rsync.pass
6、将rsync服务设为开机启动并启动该服务,rsync侦听在873端口
chkconfig rsync on
service xinetd start wKioL1gEMvnjWaIiAABIy2n6qJI240.jpg
7、使用命令测试是否可以正常同步 wKiom1gEMvmgfZJGAAAcvmGxFVo759.jpg
testuser与password就是步骤4中定义在rsync.passwd文件中的用户和密码,test目标则是Module Parameters中定义的模块名称
使用password-file文件登录
大部分的备份我们需要结合crontab来执行自动备份,此时就需要rsync在使用时结合password-file文件来免密码登录,操作步骤为:
1、vim /etc/rsync.passwd        创建存放密码的password-file文件来,此处注意的是该文件内容不同于服务器端,仅保存使用rsync命令时的用户的密码 wKiom1gEMvnTb8UFAAACti3KGTw976.jpg
2、安全起见还是需要修改/etc/rsync.passwd文件权限
chmod 600 /etc/rsync.pass
3、再次进行测试,使用--password-file指明存放密码的文件位置,步骤1中的密码此时就是testuser的密码,该用户名和密码需要与服务器端/etc/rsync.passwd文件中的用户名和密码匹配 wKioL1gEMvnAYu1OAAA4l7WpVqo632.jpg
4、使用crontab -e 命令设置周期性任务,周期性任务保存在/var/spool/cron/user_name文件中,或者使用crontab -l可以查看 wKiom1gEMvqScYwBAAAVhdfYMow896.jpg
如果没有 --delete 选项,源服务器上已删除的部分再执行下一次周期任务时依然会继续保留在目标服务器上,目标服务器只同步源服务器新增的部分 wKioL1gEMvqh-mI0AAA9U9Nx9IY607.jpg
增加 --delete 选项会将源和目标服务器上有差异的部分删除掉 wKioL1gEMvrgohclAAA05ZTAP5E001.jpg




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-287697-1-1.html 上篇帖子: cat /proc/sys/net/ipv4/ip_forward 0 解决办法 下篇帖子: samba配置匿名访问
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表