rsync介绍
Rsync 是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具,并且可以不进行改变原有数据的属性信息,实现数据的备份迁移特性。Rsync软件适用于unix/linux/windows等多种操作系统平台
rsync命令作用
rsync中有/和没有/的目录,是不一样的概念:
例:rsync /data表示查看这个目录
rsync /data/ 表示查看这个目录下的东西
rsync==cp 、 scp、 rm、 ls
cp命令
[root@backup ~]# cp -rp /etc/hosts /tmp/
rsync 复制目录的时候,比如复制的是oldboy目录
rsync -r data /tmp :data目录后面没有/,表示目录本身及目录下内容进行复制到/tmp目录下
rsync -r data/ /tmp :data目录后面有/ 表示只复制目录下的内容到/tmp目录下
scp命令
[root@backup ~]# scp -rp data10.0.0.31:/tmp/
----------------------------------------------------------
[root@backup ~]# rsync -rp data10.0.0.31:/tmp
[email protected]'s password:
rm删除命令
[root@backup ~]# rm -f data/*
[root@backup ~]# ll data
total 0
-----------------------------------
[root@backup ~]# rsync -r --delete data/ /tmp/
[root@backup ~]# ll /tmp/
total 0
ls命令
[root@backup ~]# # 查看文件信息命令ls
[root@backup ~]# rsync /tmp/
drwxrwxrwt4096 2017/05/04 09:21:42 .
[root@backup ~]# rsync /etc/
drwxr-xr-x4096 2017/05/04 09:07:46 .
-rw------- 0 2017/03/08 12:03:35 .pwd.lock
-rw-r--r--4439 2016/04/12 15:56:23 DIR_COLORS
-rw-r--r--5139 2016/04/12 15:56:23 DIR_COLORS.256color
-rw-r--r--4113 2016/04/12 15:56:23 DIR_COLORS.lightbgcolor
----------------------------------------------------------------------------
[root@backup ~]# rsync 10.0.0.31:/tmp ###查看远程主机上的目录属性信息
[email protected]'s password:
drwxrwxrwt4096 2017/05/04 09:17:06 tmp
[root@backup ~]# rsync 10.0.0.31:/tmp/ ###查看远程主机上的目录中文件的属性信息
[email protected]'s password:
drwxrwxrwt4096 2017/05/04 09:17:06 .
-rw------- 0 2017/05/02 11:29:38 yum.log
drwxrwxrwt4096 2017/05/03 21:06:50 .ICE-unix
drwxr-xr-x4096 2017/05/04 09:17:06 oldboy
rsync增量复制和全量复制特性说明
全量:所有数据,不管是否已经存在,都重新复制一遍
增量:所有数据,只复制进行变化的数据,已经存在未发生变化的数据不进行复制
rsync软件特点
tar zcvf backup_1.tar.gz /opt/data -exclude=data
#说明:在打包/opt/data时就排除了data命名的目录和文件。
rsync工作应用场景
定时任务+rsync方式
全网数据备份方案(备份、验证、通知)
备份服务器单点服务器单点问题(多个备份服务器、同城灾备、异地灾备)
实时同步+rsync方式
用户上传的数据信息,进行实时的备份
rsync软件参数
--delete 实现无差异数据同步
--bwlimit=RATE 实现数据传输过程中的限速默认单位KB
命令参数
参数说明
-v, --verbose
详细模式输出,传输时的进度等信息
-z, --compress
传输时进行压缩以提高传输效率,--compress-level=NUM 可按级别压缩
-a, --archive(重要)
归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rtopgDl
-r, --recursive 归类-a参数
对子目录以递归模式,即目录下的所有目录都同样传输。
-t, --times 归类-a参数
保持文件时间信息
-o, --owner 归类-a参数
保持文件属主信息
-p, --perms 归类-a参数
保持文件权限
-g,--group 归类-a参数
保持文件属组信息
-P,--progress
显示同步的过程及传输时的进度等信息(大写P)
-D,--devices 归类-a参数
保持设备文件信息
-l,--links 归类-a参数
保留软链接(小写字母L)
-e,--rsh=COMMAND
使用的通信协议(remote shell),指定替代rsh的shell程序。例如:ssh
--exclude=PATTERN
指定排除不需要传输的文件信息(和tar参数一样)
--exclude-from=file
文件名所在的目录文件,既可以实现排除多个文件(和rar参数一样)
--bwlimit=PATE
可以实现限速功能。单位KB
--delete
让目标目录SRC和源目录数据DST一致,即无差异同步数据
保存同步目录及文件属性:
这里的-avzP相当于-vzrtopgDlP(还多了Dl功能),生产环境常用的参数选项为-avzP或-vzrtopgP.如果是放入脚本中,也可以吧-v和-P去掉。这里的--progress可以用-P代替
rsync软件工作方式
本地复制方式
Local:rsync [OPTION...] SRC... [DEST]
---------------------------------------+
[root@backup backup]# rsync /etc/hosts /tmp ###使用方法和cp一样
[root@backup backup]# ll /tmp
total 12
-rw-r--r--1 root root 331 May 6 19:23 hosts
隧道传输方式
判断文件没有变化,根据增量同步原理,不进行数据传送
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
--------------------------------------------+
[root@backup ~]# rsync -rp /etc/hosts [email protected]:/tmp
[email protected]'s password:
[root@backup ~]# rsync -rp -e "ssh -p 22" /etc/hosts [email protected]:/tmp ##-e指定协议及端口
[email protected]'s password:
---------------------------------------------------------+
# rsync -avzP-e 'ssh -p 22' /etc/[email protected]:/opt
[email protected]'s password:
sending incremental file list
sent 30 bytesreceived 12 bytes 12.00 bytes/sec
total size is 324speedup is 7.71
判断文件发生变化,根据增量同步原理,进行数据传送
[root@backup ~]# rsync -avzP -e 'ssh -p 22' /etc/hosts [email protected]:/opt
[email protected]'s password:
sending incremental file list
hosts
326 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1)
sent 202 bytesreceived 37 bytes 68.29 bytes/sec
total size is 326speedup is 1.36
[root@backup ~]# rsync -avz -e 'ssh -p 22' /etc/hosts [email protected]:/opt
[email protected]'s password:
sending incremental file list
hosts
sent 202 bytesreceived 37 bytes 20.78 bytes/sec
total size is 325speedup is 1.36
守护进程方式
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
--------------------------------------------------------------+
###需要进行配置才可以使用守护进程的方式配置方法在下面
[root@nfs01 ~]# rsync -avzP /etc/hosts [email protected]::backup
Password:
sending incremental file list
hosts
323 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1)
sent 199 bytesreceived 27 bytes 41.09 bytes/sec
total size is 323speedup is 1.43
后续内容,下章见分晓