大佬教程收集整理的这篇文章主要介绍了rsync 服务及部署,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
rsync: - a fast,versatile,remote (and local) file-copying tool
rsync:是一种快速,多功能,远程和本地文件拷贝的工具
rsync --version:查看rsync软件版本
备份服务重要性: ?企业中所有要进行操作的数据文件,一定操作前备份。??
企业备份数据方法:重要数据需要保存在专门备份服务器上 ?第三方网盘存储。
可以实现全量和增量备份
全量:将主机A的数据全部传送给主机B
增量:将主机A新增的数据传送给主机B
方式一: 对源数据和目标目录中的数据进行比对属性信息
在同步备份数据时,默认情况下,Rsync通过其独特的“quick check”算法,它仅同步大小或者最后修改时间发生变化的文件或目录,当然也可根据权限,属主等属性的变化同步,但需要指定相应的参数,甚至可以实现只同步一个文件里有变化的内容部分,所以,可以实现快速的同步备份数据。
方式二: 利用文件指纹进行判断文件是否相同@H_881_27@md5运算生成校验数值信息(指纹信息)验证文件是否改变
rsync即是软件也是命令。
类似于?cp?命令? | 实现本地备份传输数据 | |
---|---|---|
类似于scp?命令? | 远程备份传输数据 | |
类似于?rm?命令 | 实现无差异同步备份 | |
类似于?ls?命令 | 本地文件信息查看 |
备份文件:rsync /etc/hosts /tmp 备份目录:rsync -a /aaa /tmp
scp:远程传输数据
传输文件:scp /etc/hosts [email protected]:/tmp 传输目录:scp -rp /aaa [email protected]:/tmp
rsync
备份文件:rsync /etc/hosts [email protected]:/tmp 备份目录:rsync -rp /aaa [email protected]:/tmp
利用rsync传输目录数据 ?
目录数据后面有/ ?/aaa/ ? 将目录下面的数据内容进行传输
目录数据后面没/ ?/aaa? ? 将目录本身和目录下面的数据内容进行传输
快速清空数据
@H_353_113@mkdir null #创建一个空目录 rsync -avz --delete /null/ /test注释:--delete 无差异同步参数 ?将两个目录中的数据保持高度一致。
可以理解为我(/null)有的东西,你也有。我(/null)没有的东西,你也不能有。null是个空目录,--delete保证了无差异同步,所以test目录的内容被清空。
查看文件:rsync /etc/hosts 查看目录:rsync /test
(1)支持拷贝普通文件与特殊文件如链接文件,设备等。
(2)可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。
? #tar zcvf BACkup_1.tar.gz ?/opt/data ?-exclude=clsn ?
? ? ? ? 说明:在打包/opt/data时就排除了clsn命名的目录和文件。
(3)可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变-p。
(4)可实现增量同步,既只同步发生变化的数据,因此数据传输效率很高(tar -N)。
? ? # 将备份/home 目录自 2008-01-29 以来修改过的文件
? ? # tar -N 2008-01-29 -zcvf /BACkups/inc-BACkup_$(date +%F).tar.gz /home
? ? # 将备份 /home 目录昨天以来修改过的文件
? ? # tar -N $(date -d yesterday "+%F") -zcvf /BACkups/inc-BACkup_$(date +%F).tar.gz /home
? ? # 添加文件到已经打包的文件
? ? # tar -rf all.tar .gif
? ? 说明:这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
(5)可以使用rcp,rsh,ssh等方式来配合进行隧道加密传输文件(rsync本身不对数据加密)
(6)可以通过socket(进程方式)传输文件和数据(服务端和客户端)****。重点掌握
(7)支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像。
本地复制备份文件 == cp Local: rsync [OPTION...] SRC... [DEST] SRC:要备份的数据 Dest:要备份到什么路径中 语法:rsync /etc/hosts /tmp
?
Access via remote sHell:远程数据备份文件 Pull: rsync [OPTION...] [[email protected]]HOST:SRC... [DEST]====远程主机数据拉取到本地主机 Pull: 拉取 [[email protected]]: 指定以什么用户身份登录到远程主机(默认是当前系统用户) HOST: 远程主机IP地址或者主机名称 SRC: 远程要拉取的数据信息 DEST: 保存到本地路径信息 语法:rsync [email protected]:/tmp/test.txt /aaa #将10.0.0.41主机的test.txt文件拉取到本地主机
?
Push: rsync [OPTION...] SRC... [[email protected]]HOST:DEST====本地主机数据推送到远端主机 [[email protected]]: 指定以什么用户身份登录到远程主机(默认是当前系统用户) Push: 推送 HOST: 远程主机IP地址或者主机名称 SRC: 本地要推送的数据信息 DEST: 保存到远程路径信息 语法: rsync /etc/hosts [email protected]:/tmp #将hosts文件推送给10.0.0.41主机/tmp目录
?
Access via rsync daemon====利用守护进程方式备份数据 Pull: rsync [OPTION...] [[email protected]]HOST::SRC... [DEST] rsync [OPTION...] rsync://[[email protected]]HOST[:PORT]/SRC... [DEST] Push: 客户端验证rsync方式 (1)rsync [OPTION...] SRC... [[email protected]]HOST::DEST src: 本地要推送的数据信息 [[email protected]] 认证用户名称信息 HOST: 备份服务器IP地址或者主机名称,host后面需要有两个冒号 DEST: 指定模块信息的名字BACkup 语法:rsync -avz /etc/hosts [email protected]::BACkup (2)rsync [OPTION...] SRC... rsync://[[email protected]]HOST[:PORT]/DEST #不常用,理解即可 PORT:端口是之前默认的可以不写,但如果改变要加上端口 DEST:备份的路径
守护进程方式作用:
(1)控制备份传输数据连接数
(2)可以实现免交互传输数据
(3)可以实现认证访问功能
(4)可以实现安全访问控制
yum install -y rsync #安装rsync软件 rpm -qa rsync #查看rsync软件版本 rsync-3.1.2-4.el7.x86_64 #3.1.2版本
vi /etc/rsyncd.conf #rsync_config #created by HQ at 2017 ##rsyncd.conf start## uid = rsync #虚拟用户rsync,管理备份目录 gid = rsync #虚拟用户组rsync,管理备份目录 port = 873 #服务默认端口号873 fake super = yes #伪装管理员功能开启 便于可以执行chgrp命令 use chroot = no #安全配置 max connections = 200 #最大连接数 同时支持200个客户端连接 timeout = 300 #连接超时时间 单位:秒 pid file = /var/run/rsyncd.pid #进程信息文件,便于获取进程号停止进程,判断服务是否启动,避免反复启动 lock file = /var/run/rsync.lock #锁文件:在最大连接数达到200时,会进行限制连接操作 log file = /var/log/rsyncd.log #服务运行时日志文件 ignore errors #忽略传输过程中一些小的问题 read only = false #指定备份目录的权限为可读可写 false:假 list = false hosts allow = 172.16.1.0/24 #安全策略配置,设置一个白名单,只允许172.16.1这个网段进行访问 hosts deny = 0.0.0.0/32 #安全策略配置 设置一个黑名单,不允许哪个网段进行访问 auth users = rsync_BACkup #定义认证用户 rsync_BACkup为认证用户 secrets file = /etc/rsync.password #密码文件 用户密码信息 格式:rsync_BACkup:oldboy123 [BACkup] #模块的名称(可以任意起名) comment = "BACkup dir by oldboy" #模块注释说明信息 path = /BACkup #备份的目录
以上为rsync配置文件的说明,如需配置请下载rsyncd.zip或者将说明中#号注释的全部删掉。
id rsync #查看以下是否有rsync这个用户 useradd rsync -M -s /sbin/nologin #创建rsync虚拟用户
echo "rsync_BACkup:oldboy123" >/etc/rsync.password chmod 600 /etc/rsync.password #只能root用户才能查看密码
systemctl start rsyncd systemctl restart rsyncd systemctl enable rsyncd
rsync -avz /etc/hosts [email protected]::BACkup
执行命令后显示如下图,则证明服务端部署成功。在这里注意的是输入的密码是3.1.4步骤中的密码。
echo oldboy123 >/etc/rsync.password #将3.1.4步骤中的密码写入到rsync.password(可任意起名) chmod 600 /etc/rsync.password #修改权限只能root查看密码
rsync -avz /etc/hosts [email protected]::BACkup
rsync -avz /etc/hosts [email protected]::BACkup --password-file=/etc/rsync.password
执行命令后显示如下图,则证明客户端部署成功。
-avz | 常用参数 | |
---|---|---|
-a | 属于一个归档参数,等于直接使用 -rlptgoD 的参数效果 | |
-v | 显示数据传输过程信息 | |
-z | 传输文件时,对文件进行压缩处理(提高传输效率 节省带宽) | |
-r | 递归备份传输数据 | |
-l | 保持链接文件属性不变 | |
-p | 保持普通文件属性权限不变 | |
-t | 保持文件时间信息不被改变(mtime修改时间) | |
-g | 保持文件属组信息不变 | |
-o | 保持文件属主信息不变 | |
-D | 保持设备文件属性信息不变 | |
--delete? | 实现无差异同步参数? 让服务器目录中数据信息和备份目录中的数据信息保持高度一致? |
|
--exclude=PATTERN | 指定排除不需要传输的文件信息 | |
--exclude-from=file | 文件名所在目录文件,即可以实现排除多个文件 | |
--bwlimit=RATE | 限速功能,单位为M |
以上是大佬教程为你收集整理的rsync 服务及部署全部内容,希望文章能够帮你解决rsync 服务及部署所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。