rsync工具的介绍与常用选项,rsync通过ssh同步

rsync工具介绍

一个系统管理员,数据备份是必不可少,在Linux系统下数据备份的工具很多,其中重点介绍就是rsync工具,rsync不仅可以远程同步数据,还可以本地同步数据,且不会覆盖以前的数据在已经存在的数据情况下,而是先判断已经存在的数据和新的数据差异,只有不同的时候才会把不同的部分覆盖。

以下举个例子;

[root@hch ~]# rsync -av /etc/passwd /tmp/1.txt

sending incremental file list

passwd

sent 920 bytes  received 31 bytes  1902.00 bytes/sec

total size is 846  speedup is 0.89

可以看到上列中把/etc/passwd复制到了tmp目录下并改名为1.txt

关于rsync的命令格式

rsync [OPTION]... SRC DEST //将数据同步(复制)到本地指定的路径下。

rsync [OPTION]... SRC [USER@]HOST:DEST //将文件复制远程同步到指定的用户的指定路径下,上面的例子没有指定user默认就是root。

rsync [OPTION]... [USER@]HOST:SRC DEST //从远程目录同步数据到本地。

rsync [OPTION]... [USER@]HOST::SRC DEST //从远程目录同步数据到本地,加了两个冒号验证方式不同。

rsync [OPTION]... SRC [USER@]HOST::DEST //将文件复制远程同步到指定的用户的指定路径下,加了两个冒号验证方式不同。

rsync常用选项

rsync命令各项的含义如下

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

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

-v:表示打印一些信息,比如文件列表、文件数量等。

-l:表示保留软链接。

-L:表示像对待常规文件一样处理软连接。如果是SRC中有软连接文件,则加上该选项后,将会把软连接指向的目标文件复制到DST。

-p:表示保持文件权限。

-o:表示保持文件属主信息。

-g:表示保持文件属组信息。

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

-t:表示保持文件时间信息。

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

--exclude=PATTERN:表示指定排除不需要传输的文件,等号后面跟文件名,可以是通用字符模式(比如*.txt)。

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

-u:表示把DST中比SRC还新的文件排除掉,不会覆盖。

-z:加上该选项,将会在传输过程中压缩。

常用选项示例演示

首先创建需要演示的文件;

[root@hch ~]# mkdir rsync-Z

[root@hch ~]# cd rsync-Z/

[root@hch rsync-Z]#  mkdir test1

[root@hch rsync-Z]# cd test1/

[root@hch test1]# touch 1 2 3 /root/123.txt

[root@hch test1]# ln -s /root/123.txt ./123.txt

[root@hch test1]# ls -l

总用量 0

-rw-r--r-- 1 root root  0 2月  3

 08:51 1

lrwxrwxrwx 1 root root 13 2月  3 08:52 123.txt -> /root/123.txt

-rw-r--r-- 1 root root  0 2月  3 08:51 2

-rw-r--r-- 1 root root  0 2月  3 08:51 3

使用-av选项;

[root@hch rsync-Z]# rsync -av test1/ /tmp/test2/

sending incremental file list

./

1

123.txt -> /root/123.txt

2

3

sent 209 bytes  received 75 bytes  568.00 bytes/sec

total size is 13  speedup is 0.05

以上示例中我给目录后都加了斜杠,这是因为如果你不加斜杠,命令会自动创建一个test2目录,然后将test1目录放进test2中去,加了斜杠便解决这个问题,所以以后要养成加斜杠的习惯。

使用-L选项;

[root@hch rsync-Z]# rm -rf /tmp/test2

[root@hch rsync-Z]# rsync -avL test1/ /tmp/test2/

sending incremental file list

created directory /tmp/test2

./

1

123.txt

2

3

sent 223 bytes  received 91 

bytes  628.00 bytes/sec

total size is 0  speedup is 0.00

上列加上-L选项便把SRC中软连接的目标文件复制到DST

使用--delete选项;

[root@hch rsync-Z]# touch /tmp/test2/new.txt

[root@hch rsync-Z]# ls /tmp/test2/

1  123.txt  2  3  new.txt

[root@hch rsync-Z]# rsync -avL --delete test1/ /tmp/test2/

sending incremental file list

./

deleting new.txt

sent 67 bytes  received 15 bytes  164.00 bytes/sec

total size is 0  speedup is 0.00

[root@hch rsync-Z]# ls !$

ls /tmp/test2/

1  123.txt  2  3

如果在DST增加文件,而SRC当中没有这些文件,同步时加上--delete选项后就会删除新增的文件

使用--exclude选项;

[root@hch rsync-Z]# touch test1/4

[root@hch rsync-Z]# ls test1/

1  123.txt  2  3  4

[root@hch rsync-Z]# rsync -avL --exclude="4" test1/ test2/

sending incremental file list

created directory test2

./

1

123.txt

2

3

sent 223 bytes  received 91 bytes  628.00 bytes/sec

total size is 0  speedup is 0.00

该选项还支持匹配字符(*)使用;

[root@hch rsync-Z]# ls test1

1  123.txt  2  3  4

[root@hch rsync-Z]# rsync -avL --exclude="*.txt" test1/ /tmp/test2/

sending incremental file list

./

4


sent 104 bytes  received 34 bytes  276.00 bytes/sec

total size is 0  speedup is 0.00

使用-P(--progress)选项;

[root@hch rsync-Z]# rm -rf /tmp/test2/

[root@hch rsync-Z]# rsync -avP test1/ /tmp/test2/

sending incremental file list

created directory /tmp/test2

./

1

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

123.txt -> /root/123.txt

2

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

3

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

4

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

sent 262 bytes  received 94 bytes  712.00 bytes/sec

total size is 13  speedup is 0.04

加上-P观察同步过程状态。

使用-u选项;

[root@hch rsync-Z]# vi /tmp/test2/567.txt

[root@hch rsync-Z]# cat /tmp/test2/567.txt

hello world

[root@hch rsync-Z]# rsync -avPu test1/ /tmp/test2/

sending incremental file list

./

sent 103 bytes  received 15 bytes  236.00 bytes/sec

total size is 13  speedup is 0.11

加上-u选项后,可以看到目标文件的心内容不会被源目录文件的覆盖。

rsync通过ssh同步

前面介绍到的rsync5中命令格式中,第二种和三种(使用一个冒号)就属于通过ssh的方式备份数据,这种方式其实就是让用户登录到远程服务器上执行rsync的任务。

[root@hch rsync-Z]# rsync -av /etc/passwd 192.168.74.128:/tmp/test1.txt

root@10.2.33.71's password:

sending incremental file list

passwd

sent 920 bytes  received 31 bytes  51.41 bytes/sec

total size is 846  speedup is 0.89

这时你一个cat以下目标服务器上/tmp/下的test1.txt文件,这里名字是自定义的,你可以命名为你熟知的名字

[root@redis ~]# cat /tmp/test1.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

当然还可以从远程将文件发送到本机上

[root@hch rsync-Z]# rsync -avP 10.2.33.75:/tmp/test1.txt /tmp/cs1.txt

root@10.2.33.75's password:

receiving incremental file list

sent 11 bytes  received 39 bytes  11.11 bytes/sec

total size is 936  speedup is 18.72

同样的你可以cat以下本机/tmp/目录下的cs1.txt文件检查一下。

如果你的另外一台服务器端口并不是22,那么你可以加个选项来操作

[root@hch rsync-Z]# rsync -avP -e "ssh -p 22" /etc/passwd/ 10.2.33.75:/tmp/cs1.txt

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容