rsync: - a fast, versatile, remote (and local) file-copying toolrsync:是一种快速,多功能,远程和本地文件拷贝的工具rsync --version:查看rsync软件版本备份服务重要性: 企业中所有要进行操作的数据文件,一定操作前备份。 企业备份数据方法:重要数据需要保存在专门备份服务器上 第三方网盘存储。
可以实现全量和增量备份
全量:将主机A的数据全部传送给主机B增量:将主机A新增的数据传送给主机B
方式一: 对源数据和目标目录中的数据进行比对属性信息在同步备份数据时,默认情况下,Rsync通过其独特的“quick check”算法,它仅同步大小或者最后修改时间发生变化的文件或目录,当然也可根据权限,属主等属性的变化同步,但需要指定相应的参数,甚至可以实现只同步一个文件里有变化的内容部分,所以,可以实现快速的同步备份数据。方式二: 利用文件指纹进行判断文件是否相同md5运算生成校验数值信息(指纹信息)验证文件是否改变将生成的md5值发送给目标主机,目标主机验证接收的md5值是否与本机文件所产生的md5相同,如何不相同。则进行传输。
rsync即是软件也是命令。
类似于 cp 命令 实现本地备份传输数据类似于scp 命令 远程备份传输数据类似于 rm 命令实现无差异同步备份类似于 ls 命令本地文件信息查看scp:远程传输数据
传输文件:scp /etc/hosts root@172.16.1.41:/tmp 传输目录:scp -rp /aaa root@172.16.1.41:/tmprsync
备份文件:rsync /etc/hosts root@172.16.1.41:/tmp 备份目录:rsync -rp /aaa root@172.16.1.41:/tmp利用rsync传输目录数据目录数据后面有/ /aaa/ 将目录下面的数据内容进行传输** 目录数据后面没/ /aaa 将目录本身和目录下面的数据内容进行传输**
快速清空数据
mkdir null #创建一个空目录 rsync -avz --delete /null/ /test注释:--delete 无差异同步参数 将两个目录中的数据保持高度一致。可以理解为我(/null)有的东西,你也有。我(/null)没有的东西,你也不能有。null是个空目录,--delete保证了无差异同步,所以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)支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像。
推送,拉取都是在客户端操作
Access via remote shell:远程数据备份文件 Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]====客户端将远程主机数据拉取到本地主机 Pull: 拉取 [USER@]: 指定以什么用户身份登录到远程主机(默认是当前系统用户) HOST: 远程主机IP地址或者主机名称 SRC: 远程要拉取的数据信息 DEST: 保存到本地路径信息 语法:rsync root@10.0.0.41:/tmp/test.txt /aaa #将10.0.0.41主机的test.txt文件拉取到本地主机Push: rsync [OPTION...] SRC... [USER@]HOST:DEST====客户端将本地主机数据推送到远端主机 [USER@]: 指定以什么用户身份登录到远程主机(默认是当前系统用户) Push: 推送 HOST: 远程主机IP地址或者主机名称 SRC: 本地要推送的数据信息 DEST: 保存到远程路径信息 语法: rsync /etc/hosts root@172.16.1.41:/tmp #将hosts文件推送给10.0.0.41主机/tmp目录
守护进程方式作用:(1)控制备份传输数据连接数(2)可以实现免交互传输数据(3)可以实现认证访问功能(4)可以实现安全访问控制
文字说明:(1)客户端:发送要传输数据的请求rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password(2)服务端:接收到传输数据请求,进行用户认证操作。服务端确认用户信息是否正确,确认客户端输入的用户 == 服务端配置文件里的用户服务端确认用户密码是否正确,确认客户端输入的密码 == 服务端相应用户的密码信息在进行用户认证时,需要判断两个文件的权限是否是600(3)客户端:将数据传输到服务端,会转换传输的身份,将数据信息权限改动 rsync (4)服务端:如果想让数据正确保存,修改备份目录属主属组为rsync.rsync
以上为rsync配置文件的说明,如需配置请下载rsyncd.zip或者将说明中#号注释的全部删掉。
执行命令后显示如下图,则证明服务端部署成功。在这里注意的是输入的密码是3.1.4步骤中的密码。
执行命令后显示如下图,则证明客户端部署成功。
环境条件:
人员模块模块对应备份目录开发人员devop/devop运维人员sa/sa数据库人员dba/dba第一步:修改配置文件vi /etc/rsyncd.conf
[sa] comment = "backup dir by sa" path = /sa [devop] comment = "backup dir by devop" path = /devop [dba] comment = "backup dir by dba" path = /dba第二步:创建并修改备份目录
mkdir /{sa,dev,dba} -p chown rsync.rsync /{sa,dev,dba} ll -d /{sa,dev,dba} drwxr-xr-x 2 rsync rsync 6 Jul 15 16:24 /dba drwxr-xr-x 6 rsync rsync 140 Jul 15 16:23 /dev drwxr-xr-x 2 rsync rsync 6 Jul 15 16:24 /sa补充扩展:如果统一将数据存储在一个目录中,如何进行区分不同数据是哪个用户存储的?又或者如何保持推送的数据属主属组不变?要推送的数据:
[root@yang home]#ll 5.txt -rw-r--r-- 1 oldgirl oldgirl 0 Jul 14 11:42 5.txt修改配置文件:
uid = root gid = root #fake super = yes修改备份目录权限
chown root.root /backup/环境准备:
mkdir /oldboy/{a..c} -p touch /oldboy/{a..c}/oldboy{01..03}.txt [root@yang oldboy]#tree . ├── a │ ├── oldboy01.txt │ ├── oldboy02.txt │ └── oldboy03.txt ├── b │ ├── oldboy01.txt │ ├── oldboy02.txt │ └── oldboy03.txt └── c ├── oldboy01.txt ├── oldboy02.txt └── oldboy03.txt参数:--exclude: 排除指定单个数据信息--exclude-from: 排除指定多个数据信息要求1:备份/oldboy整个数据,排除b目录不要同步备份 排除c目录中oldboy03.txt文件不要备份
[root@yang /]#rsync -avz /oldboy/ --exclude=b --exclude=c/oldboy03.txt rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password sending incremental file list ./ a/ a/oldboy01.txt a/oldboy02.txt a/oldboy03.txt c/ c/oldboy01.txt c/oldboy02.txt sent 385 bytes received 134 bytes 1,038.00 bytes/sec total size is 0 speedup is 0.00PS:--exclude指定排除数据信息,目录结构必须是相对路径,相对于传输的目录而言
要求2:备份/oldboy整个数据,排除b目录中01.txt ,02.txt c目录中 01.txt, 02 .txtexclude-from=file 要创建一个文件
vi /oldboy/exclude.txt #编辑exclude.txt b/oldboy01.txt #写入要排除的 b/oldboy02.txt c/oldboy01.txt c/oldboy02.txt执行命令:
[root@yang oldboy]#rsync -avz /oldboy/ --exclude-from=/oldboy/exclude.txt rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password sending incremental file list ./ exclude.txt a/ a/oldboy01.txt a/oldboy02.txt a/oldboy03.txt b/ b/oldboy03.txt c/ c/oldboy03.txt sent 514 bytes received 161 bytes 1,350.00 bytes/sec total size is 60 speedup is 0.09ps:模块目录下创建目录是一级一级创建,不能一次性创建多级目录
hosts allow = 172.16.1.0/24 --- 允许172.16.1.0网段主机存储数据hosts deny = 0.0.0.0/32 --- 阻止0.0.0.0地址主机存储数据备份服务配置文件中:全局配置 局部配置 全局配置:在模块之上配置都是全局配置 可以影响所有模块 局部配置:在模块中的配置都是局部配置 可以影响指定模块 PS:局部配置优先于全局配置,白名单优先于黑名单
list = false --- 如果改为true,客户端可以列表显示服务端详细模块信息list=true
[root@backup ~]#rsync -avz rsync_backup@172.16.1.41:: backup "backup dir by oldboy" sa "backup dir by sa" devop "backup dir by devop" dba "backup dir by dba"--delete:保证客户端和服务端数据高度一致
清空数据目录:rsync -avz --delete /null/ 172.16.1.41:/test #null为空目录 清空数据文件:rsync -avz --delete /aaa.txt /test/test.txt #aaa.txt为空文件 rsync -avz --delete /aaa.txt 172.16.1.41:/bbb/bbb.txt补充:传输大的文件,如何显示传输过程 (-P)
[root@yang ~]# rsync -avzP /tmp/500M rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password sending incremental file list 500M 524,288,000 100% 115.28MB/s 0:00:04 (xfr#1, to-chk=0/1) sent 509,967 bytes received 43 bytes 68,001.33 bytes/sec total size is 524,288,000 speedup is 1,027.00服务端端口号发生改变 --port 端口号
[root@yang ~]# rsync -avzP /tmp/500M rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password --port 874 sending incremental file list sent 47 bytes received 20 bytes 134.00 bytes/sec total size is 524,288,000 speedup is 7,825,194.03如果rsyncd.conf配置文件不在/etc目录下,而是在/tmp下,该如何启动rsync服务
[root@yang ~]# rsync --daemon --config=/tmp/rsync.conf [root@yang ~]# netstat -lntup|grep rsync tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 9933/rsync tcp6 0 0 :::873 :::* LISTEN 9933/rsync [root@yang ~]# rsync --daemon --address=172.16.1.41 [root@yang ~]# netstat -lntup |grep 873 tcp 0 0 172.16.1.41:873 0.0.0.0:* LISTEN 2583/rsync--daemond的参数
daemon启动扩展参数--daemondaemon表示以守护进程的方式启动rsync服务。--address绑定指定IP地址提供服务。--config=FILE更改配置文件路径,而不是默认的/etc/rsyncd.conf--port=PORT更改其它端口提供服务,而不是已经改变的873端口优点:实现增量备份数据 缺点:在同步大量小文件,容易造成数据丢失 (可以将目录进行压缩处理,然后进行同步) 在同步大文件数据,容易造成数据传输中断,断点续传功能不强。(可以用FTP进行同步)
转载于:https://www.cnblogs.com/basa/p/11184146.html