邱立祥

——— 一个刚刚起步的 Linuxer

Cononico

2018年1月5日

Linux基础 Linux常用命令>

数据同步工具rsync介绍(1)

数据备份,是作为系统管理最为重要,不容有失的分内工作之一。在linux系统下数据备份的工具很多,日常工作中最常用的就是rsync. 从字面上的意思你可以理解为remote sync (远程同步)。
Rsync不仅可以远程同步数据(类似于scp [1]),当然还可以本地同步数据(类似于cp),但不同于cp或scp的一点是,rsync不像cp/scp一样会覆盖以前的数据(如果数据已经存在),它会先判断已经存在的数据和新数据有什么不同,只有不同时才会把不同的部分覆盖掉。如果没有 rsync 命令请使用 yum install -y rsync 安装。
下面先举一个例子,然后再详细讲解rsync的用法:

上面例子表示把当前目录下的 123.txt 同步到 /tmp/ 目录下,也可以更改目标文件的名字, rsync -av 123.txt /tmp/234.txt 如果是远程拷贝的话就是这样的形式了: IP:path (如:10.0.2.34:/root/)

首次连接会提示是否要继续连接,我们输入yes继续,当建立连接后,需要输入密码。如果手动去执行这些操作还好,但若是写在脚本中怎么办?这就涉及到添加信任关系了。

1. rsync的命令格式

在一开始举的两个例子,第一个例子即为第一种格式,第二个例子即为第二种格式,但不同的是,之前并没有加user@host 如果不加默认指的是root。
第三种格式是从远程目录同步数据到本地。第四种以及第五种格式使用了两个冒号,这种方式和前面的方式的不同在于验证方式不同,稍后详细介绍。

2. rsync常用选项

-a —— 归档模式,表示以递归方式传输文件,并保持所有属性,等同于-rlptgoD, -a选项后面可以跟一个 –no-OPTION 这个表示关闭-rlptgoD中的某一个例如 -a–no-l 等同于-rptgoD

-r —— 对子目录以递归模式处理,主要是针对目录来说的,如果单独传一个文件不需要加-r,但是传输的是目录必须加-r选项

-v —— 打印一些信息出来,比如速率,文件数量等

-l —— 保留软链接

-L —— 向对待常规文件一样处理软链接,如果是SRC中有软连接文件,则加上该选项后将会把软连接指向的目标文件拷贝到DST

-p —— 保持文件权限

-o —— 保持文件属主信息

-g —— 保持文件属组信息

-D —— 保持设备文件信息

-t —— 保持文件时间信息

–delete —— 删除那些DST中SRC没有的文件

–exclude=PATTERN —— 指定排除不需要传输的文件,等号后面跟文件名,可以是万用字符模式(如*.txt)

–progress —— 在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、同步的文件传输速度等等

-u ——  加上这个选项后将会把DST中比SRC还新的文件排除掉,不会覆盖
常用的选项页仅仅那么几个: (-a -v –delete –exclude ), 请熟记他们吧。

 

 

 

来一发吐槽