Rsync服务
目录
Rsync服务Rsyncrsync是一款开源、快速、多功能、可实现全量及增量的本地或远程数据同步备份的优秀工具。rsync软件适用于Unix/linux/Windows等多种操作系统平台。 rsync 简介rsync英文称为remote synchronizetion,从软件的名称就可以看出来,rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像、远程备份的功能,这个功能类似于ssh带的scp命令,但是又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以增量拷贝。当然,rsync还可以在本地主机的不同分区或目录之间全量及曾量的复制数据,这又类似cp命令。但是同样也优于cp命令,cp每次都是全量拷贝,而rsync可以增量拷贝。 在同步数据的时候,默认情况下,rsync通过其独特的“quick check”算法,它仅同步大小或者最后修改时间发生变化的文件或目录,当然也可根据权限、属主等属性的变化同步,但是需要制定相应的参数,甚至可以实现只同步一个文件里有变化的内容部分,所以,可是实现快速的同步备份数据。 rsync官方地址:TP rsync监听端口:873 rsync运行模式:C/S client/server 客户端/服务端 小提示:利用rsync还可以实现删除文件和目录的功能,这又相当于rm命令,一个rsync相当于scp、cp、rm,但是还优于他们的每一个命令。 Rsync的特性支持拷贝特殊文件,如连接文件、设备等。 生产场景架构集群备份方案1.借助cron+rsync把所有客户服务器数据同步到备份服务器。 备份的类型
rsync的应用场景Rync的数据同步模式
rsync的三种模式1. 本地方式? 单个主机本地之间的数据传输(类似于 ? [[email?protected] ~]# rsync /etc/b.txt /tmp/ #本地拷贝数据命令 Local: rsync [OPTION...] SRC... [DEST] #本地拷贝数据示例 [[email?protected] ~]# rsync -avz /etc/passwd /tmp/ rsync #备份命令(cp) [options] #选项 SRC... #本地源文件 [DEST] #本地目标文件 2.远程传输方式通过ssh通道传输数据,(类似于 Access via remote shell: #pull拉取数据命令 Pull: rsync [OPTION...] [[email?protected]]HOST:SRC... [DEST] #push推送数据命令 Push: rsync [OPTION...] SRC... [[email?protected]]HOST:DEST rsync -avz [email?protected]:/tmp ./ pull拉: [[email?protected] ~]# rsync -avz [email?protected]:/tmp ./ rysnc -avz /var [email?protected]:/tmp/ push推: [[email?protected] ~]# rsync -avz /var [email?protected]:/tmp/ 注意: rsync不管是推还是拉,推送目录的时候带/和不带/ ? 1.带/ :/etc/ 将etc目录下的所有内容,推过去(拉过来) ? 2.不带/:/etc 将etc目录整体推过去(拉过来) 3.守护进程传输方式rsync自身非常重要的功能(不使用系统用户,更加安全) Access via rsync daemon: Pull: rsync [OPTION...] [[email?protected]]HOST::SRC... [DEST] Push: rsync [OPTION...] SRC... [[email?protected]]HOST::DEST rsync -avz /data/ [email?protected]::zls
服务端配置1.服务端安装rsync [[email?protected] ~]# yum -y install rsync 2.服务端,修改配置文件 [[email?protected] ~]# vim /etc/rsyncd.conf #用户名 uid = rsync #用户组 gid = rsync #端口 port = 873 #无需让rsync以root身份运行 fake super = yes #禁锢目录,不允许操作指定目录之外的目录 use chroot = no #最大连接数200 max connections = 200 #超时时间600s 10分钟 timeout = 600 #忽略错误 ignore errors #关闭只读 read only = false #不允许查看模块信息 list = false #认证用户 auth users = rsync_backup #认证用户的密码文件 secrets file = /etc/rsync.passwd #日志文件 log file = /var/log/rsyncd.log ##################################### #模块(任意名字都可以) [zls] #注释信息(无关紧要) comment = welcome to oldboyedu backup! #路径 path = /backup 2.服务端(backup),创建用户,创建一个用来运行rsync服务的用户身份 #检查用户是否存在 [[email?protected] ~]# id rsync id: rsync: no such user #创建用户(不允许登录,不创建家目录) [[email?protected] ~]# useradd rsync -s /sbin/nologin -M -s:指定登录的shell -M:不创建家目录 3.服务端,创建一个备份目录 [[email?protected] ~]# mkdir /backup #授权rsync用户 [[email?protected] ~]# chown -R rsync.rsync /backup/ 4.服务端,创建虚拟用户及密码文件 #创建用户名和密码文件 [[email?protected] ~]# vim /etc/rsync.passwd rsync_backup:123456 #授权 [[email?protected] ~]# chmod 600 /etc/rsync.passwd 5.服务端,启动rsync添加开机自启 [[email?protected] ~]# ll /usr/lib/systemd/system/rsyncd.service -rw-r--r-- 1 root root 237 Apr 26 01:17 /usr/lib/systemd/system/rsyncd.service #启动rsyncd守护进程 [[email?protected] ~]# systemctl start rsyncd #允许开机自启 [[email?protected] ~]# systemctl enable rsyncd 客户端配置1.安装rsync [[email?protected] ~]# yum install -y rsync 2.创建虚拟用户的密码文件 #创建用户密码文件 [[email?protected] ~]# vim /etc/rsync.pass 123456 #授权 [[email?protected] ~]# chmod 600 /etc/rsync.pass rsync实战实战一[[email?protected] ~]# mkdir /data [[email?protected] ~]# cd /data [[email?protected] data]# touch file{1..100} [[email?protected] data]# ll 推: [[email?protected] ~]# rsync -avz /data/ [email?protected]::zls 拉: [[email?protected] ~]# rsync -avz [email?protected]::zls /root/ 非交互式: [[email?protected] data]# rsync -avz /data/ [email?protected]::naonao --password-file=/etc/rsync.pass #密码文件 报错解决方法:
解决 1.客户端密码文件:600权限 2.服务端密码文件:600权限 3.客户端密码文件中,只写密码,不写用户 4.服务端密码文件中,用户:密码
chown -R rsync.rsync /backup 认证失败: 1.先检查配置文件:服务端:/etc/rsyncd.conf [模块] 2.检查服务端,/etc/rsync.passwd文件的权限是不是600 3.再检查服务端,/etc/rsync.passwd文件的内容,是不是 用户名:密码 rsyncd.conf 里的 rsync_backup 4.再检查客户端,/etc/rsync.pass 权限600 5./etc/rsync.pass 内容只写密码 6.修改完配置文件要重启服务,[backup] [zls] systemctl restart rsyncd uid = rsync gid = rsync port = 873 fake super = yes use chroot = no max connections = 200 timeout = 600 ignore errors read only = false list = false auth users = rsync_backup secrets file = /etc/rsync.passwd log file = /var/log/rsyncd.log ##################################### [backup] comment = welcome to oldboyedu backup! path = /backup (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |