三十五、 rsync工具介绍、rsync常用选项、rsync通过ssh同步

一、rsync工具

数据备份,很重要。

rsync工具:数据备份的工具。remote sync(远程同步)

rsync可以远程同步数据(类似scp),也可以本地同步数据(类似cp)。

       不同于cp或scp的是,它不会覆盖以前的数据(当数据已存在),而是先判断已存在的数据和新数据的差异,只有数据不同时才会把不同的部分覆盖。

若没有rsync命令,就yum install -y rsync安装。

# rsync -av /etc/passwd /tmp/1.txt   将/etc/passwd同步到/tmp/目录下,并改名。

若是远程同步,数据备份就是IP:path的形式,比如192.168.188.128:/root/。具体用法:

# rsync -av /etc/passwd root@192.168.93.130:/tmp/1.txt

                                        用户名、IP、文件路径

首次连接会提示时候继续连接,输yes继续。建立连接后,需要输入密码

格式:

rsync [OPTION] ...  SRC DEST

rsync [OPTION] ...  SRC [USER@]HOST:DEST

rsync [OPTION] ...  [USER@]HOST:SRC DEST   远程源目录拷至本地

rsync [OPTION] ...  [USER@]HOST::SRC DEST

rsync [OPTION] ...  SRC [USER@]HOST::DEST

option:选项

SRC:源目录

DEST:目标目录

若不指定用户,则为当前终端的用户。

hostSRC:远程目录

二、rsync常用选项

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

-r:同步目录时加上,类似cp时的-r选项。

-v:可视化,打印一些信息,比如文件列表,文件数量。

-l:保留软链接。

-L:同步软链接时会把源文件给同步。

-p:保持文件的权限属性。755,644;拷贝过去还是这个权限。

-o:保持文件的属主。

-g:保持文件的属组。

-D:保持设备文件信息。

-t:保持文件的时间属性。

--delete:删除DST中SRC没有的文件。

--exclude:过滤指定文件,如--exclude=PATTERN,等号后跟文件名。也可以是万用字符模式(如*.txt)。--exclude “logs”会把文件名包含logs的文件或目录过滤掉,不同步。

--progress:表示在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、同步的文件传输速度等。同-P。

-P:显示同步过程,比如速率,百分比。比-v详细。

-u:若DEST中的文件比SRC新,则不同步。

-z:在传输过程中压缩。zip的意思。

-e:指定端口。

用法示例:

# rsync -avL test1 test3   加上-L后,小写l就不生效了

# rsync -a test1/ test3/      备份目录时,要养成加斜杠的习惯

# rsync -avP 123 dir3      传输速度,进程都会列出来。

sending incremental file list

123/

123/1.txt

25 100%    0.00kB/s    0:00:00 (xfer#1, to-check=4/6)

123/2.txt

46 100%   44.92kB/s    0:00:00 (xfer#2, to-check=3/6)

123/3.txt

76 100%   74.22kB/s    0:00:00 (xfer#3, to-check=2/6)

123/678

0 100%    0.00kB/s    0:00:00 (xfer#4, to-check=1/6)

123/567/

sent 451 bytes  received 96 bytes  1094.00 bytes/sec

total size is 147  speedup is 0.27

三、rsync通过ssh同步

# rsync -av /etc/passwd 192.168.93.130:/tmp/1.txt  本地同步至远程,推文件

# rsync -av 192.168.93.130:/tmp/1.txt /tmp/2.txt      远程同步至本地,拉文件

一个冒号就属于通过ssh方式备份数据。

远程的对方机器也需要安装rsync工具才能使用。

# rsync -avP -e "ssh -p 22" /etc/passwd 192.168.93.130:/tmp/1.txt

当对方不是22端口时,可用-e指定连接对方的某个端口