天天看点

Rsync文件备份服务介绍

作者:AndrewNotes
Rsync文件备份服务介绍

Rsync介绍

什么是rsync

rsync是一款开源、快速、多功能、可实现全量及增量的本地或远程数据备份的优秀软件。rsync软件适用于Unix/linux/Windows等多种操作系统平台。

rsync英文称为remote synchronization(n,同步),从软件的名称就可以看出来,rsync具有可使本地和远程两台主机之间的数据快速复制、远程备份的功能。这个功能类似于ssh带的scp命令,但是又优于scp命令的功,scp每次都是全量拷贝,而rsync可以增量拷贝。当然,rsync也可以在本地主机的不同分区或目录之间全量及增量的复制数据,这又类似cp命令。但是同样也优于cp命令,cp每次都是全量拷贝,而rsync可以增量拷贝。

在备份复制数据的时候,默认情况下,rsync通过其独特的“quick check”算法,它仅复制大小或者最后修改时间发生变化的文件或目录,当然也可根据权限、属主等属性的变化同步,但是需要指定相应的参数,甚至可以实现只同步一个文件里有变化的内容部分,所以,可以实现快速的同步备份数据,即增量复制。而scp、cp都是全量复制。

Cent6和7上默认版本Rsync 3.x是一边比对差异,一边对差异部分进行复制。

总结:一个rsync相当于scp、cp、rm,而且更优

官网:

rsync端口:873

rsync运行模式:C/S

Rsync的特性

-支持拷贝普通文件与特殊文件,如链接文件、设备文件等。
-支持排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。
-可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变。
-可实现增量复制,即只复制发生变化的数据,因此数据传输效率很高。
-可以使用 rcp、rsh、SSH 等方式来配合进行隧道加密传输文件(Rsync 本身不对数据加密)。
-可以通过 socket(进程方式)传输文件和数据(服务端和客户端)。
-支持匿名或认证(无须系统用户) 进程模式传输,安全地进行数据备份及镜像。
           

scp命令介绍

## 推(上传):
比如把web01的1.txt推到backup
0 ✓ 08:46:58 root@web01,172.16.1.7:~ # vim 1.txt 要输点东西进去
 0 ✓ 08:47:36 root@web01,172.16.1.7:~ # scp -r /root/1.txt [email protected]:/tmp
输入密码即可


 0 ✓ 08:48:55 root@backup,172.16.1.41:/tmp # ll   看一眼,backup机已经有了
total 60
-rw-r--r--  1 root root     7 Sep 13 08:56 1.txt




## 拉(下载):反过来  
scp -r [email protected]:/tmp/1.txt /opt    


# 注:scp基于SSH协议,停ssh就不能用了。scp是全量拷贝,rsync支持增量           

关于备份类型

全量备份
将数据全部备份出来(效率低下)

增量备份
基于上一次的备份,将新增数据进行备份

差异备份
基于全量备份,新增的数据进行备份
           

rsync的三种传输模式

## 1、本地模式(类似cp,但rsync有增量方式)
本地拷贝命令:
Local: rsync [OPTION...] SRC... [DEST]
       rsync 选项       本地源文件 本地目标路径
默认是文件
-a 目录


# 例如
rsync -a /etc/ /tmp   只是将/etc下的文件和目录传输过去,不包括etc目录本体
rsync -a /etc /tmp     将/etc目录及其下所有东西都传输  




## 2、远程模式(通过ssh传输数据,类似scp命令)
# 推
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
推    rsync 选项 要推的本地文件   远程主机@IP:目标路径
# 例如
[root@web01 ~]# rsync -avz /root/1.txt [email protected]:/tmp/
[email protected]'s password: ...
效果同scp
[root@web01 ~]# scp /root/1.txt [email protected]:/tmp/


# 拉  
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
拉    rsync 选项 远程主机@IP:要下载的文件 下载到本地的位置  
# 例如
[root@web01 ~]# rsync -avz [email protected]:/etc/hostname ./   #拉取远程文件
[root@web01 ~]# rsync -avz [email protected]:/root/ /backup/   #拉取远程目录下的所有文件
[root@web01 ~]# rsync -avz [email protected]:/root /backup/   #拉取远程目录以及目录下的所有文件


# 说明:实际工作中why更多是用守护进程模式
1, 远程模式和scp差不多,基于ssh,要用到系统用户和密码,不安全,所以我们用守护进程模式
2, 守护进程模式不需要ssh协议,服务启动后,自带端口873
3, 守护进程模式可以设置匿名用户,不需要使用系统用户,更安全           
# 3、守护进程模式


守护进程模式是在c/s之间进行数据复制。通常需要服务端部署rsync守护进程模式服务,然后在客户端执行命令,实现数据推拉等操作


#推
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
    rsync   选项     本地资源 虚拟用户名@IP::模块名
例如:将nfs的 /etc/shadow推送至rsync备份服务器的backup模块
[root@nfs ~]# rsync -avz /etc/shadow [email protected]::backup


#拉
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
    rsync   选项       虚拟用户名@主机IP::模块名 拉到本机哪里
例如:把backup模块数据拉到本机/opt下
[root@nfs ~]# rsync -avz [email protected]::backup /opt           

rsync选项总结

# -a   归档模式传输, 等于-tropgDl  
----------------------------------
-t   保持文件时间信息
-r   递归传输目录及子目录
-o   保持文件属主信息 owner
-p   保持文件权限 permit
-g   保持文件属组信息
-D   保持设备文件信息 device
-l   保留软链接

# -v   显示过程
# -z   传输时压缩以提高效率,到那边自动解压
# -P   显示进度
-L     保留软链接指向的目标文件
-e     传递参数



--exclude=PATTERN     指定排除不需要传输的文件模式
--exclude-from=file(eg:paichu.txt)   指定排除多个
vim paichu.txt

--bwlimit=100         限速XXX传输,看需求用
--partial             断点续传(很垃圾的服务器可能会断电那种,保险起见才会用)
                      比如迅雷你下了一半电脑突然关机,再开机不会重新下。但网页的话闪退就得重下
                     
# --delete               决定数据是否要同步,有这个就同步
# --password-file=xxx   使用密码文件

           

rsync企业常见应用场景

1、服务器间周期性数据备份:手动或定时任务+rsync

见rsync实战(二)

适合:网站程序文件;系统配置文件变更

2、NFS到Backup服务器的实时复制:inotify/sersync+rsync

利用rsync结合inotify/sersync做实时数据复制。根据nfs上目录的变化,将变化的数据通过inotify/sersync结合rsync命令复制到backup服务器。

适合:用户上传的普通文件

实践见后续中期架构。

继续阅读