Linux rsync命令使用详解

 2024-01-12 04:01:01  阅读 0

Linux系统下,有很多用于数据备份的工具。 除了前面介绍的tar、cpio、dd命令之外,本节介绍另一个用于备份数据的命令,那就是rsync。

从字面上看,rsync可以理解为sync(远程同步),但它不仅可以远程同步数据(类似于scp命令),还可以在本地同步数据(类似于cp命令)。 与cp或scp不同的一点是,使用rsync命令备份数据时,不会直接覆盖之前的数据(如果数据已经存在),而是先判断现有数据与新数据的区别数据。 只有当数据不同时才覆盖不同的部分。

在学习系统中的rsync命令之前,请确认您的Linux系统中已经安装了该命令。 如果没有,可以直接使用 yum -y rsync 命令安装。

在讲解rsync的用法之前,为了让大家对这个命令有一个整体的了解,这里举一个例子:

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

文件列表

已发送 34 字节 15 字节 98.00 字节/秒

总大小为 1432 为 29.22

本例中,通过执行rsync命令,将/etc/文件本地同步到/tmp/目录下,并重命名为1.txt。

另外,rsync命令还支持数据的远程同步,即将本地数据备份到远程机器上。 例如,如果我们知道远程机器的IP地址是192.168.188.128,那么使用rsync命令备份文件的执行命令是:

[root@ ~]# rsync -av /etc/192.168.188.128:/tmp/1.txt

主机 '192.168.188.128 (192.168.188.128)' 的 不能是 。

ECDSA 密钥为 26:e3:97:e7:bb:ae:17:33:ea:aa:Oc:5f:37:Oe:9e:fa。

您确定要这样做吗(是/否)? 是的

:将“192.l68.l88.l28”(ECDSA)添加到已知主机列表中。

root@192.168.188.128的:文件列表

发送 31 字节 12 字节 7.82 字节/秒

总大小为 1432 为 54.91

注意,第一次远程连接时,会提示是否继续连接,输入yes即可。 另外,当连接成功建立后,需要输入目标系统的root密码。

通过上面两个例子,读者应该能够对“rsync既支持本地备份数据,又支持远程备份数据”有一个直观的认识。 那么,如何使用rsync命令呢?

rsync命令的基本格式有很多种,分别是:

[root@ ~]# rsync [] SRC DEST

[root@ ~]# rsync [] SRC [USER@]HOST:DEST

[root@ ~]# rsync [] [USER@]HOST:SRC DEST

[root@ ~]# rsync [] [USER@]HOST::SRC DEST

[root@ ~]# rsync [] SRC [USER@]HOST::DEST

对于以上五种命令格式,rsync有5种不同的工作模式:

要知道,使用rsync远程传输数据(备份数据)之前,需要进行登录认证。 这个过程需要使用ssh协议或者rsync协议来完成。 rsync命令中,如果使用单个冒号(:),则默认使用ssh协议; 否则,如果使用两个冒号 (::),则使用 rsync 协议。

ssh协议和rsync协议的区别在于rsync协议在使用时需要额外的配置,增加了工作量,但优点是更安全; 相反,ssh协议使用方便,不需要配置,但存在泄露服务器密码的风险。

另外,上述格式中各参数的含义如下:

rsync命令提供的功能如表1所示。

表1 rsync选项及功能选项

-A

这是归档模式,意味着文件被递归传输,保留所有属性,相当于 -r、-l、-p、-t、-g、-o、-D 选项。 -a 选项后面可以跟一个 --no-,这意味着关闭 -r、-l、-p、-t、-g、-o 和 -D 之一。 例如,-a --no-l 相当于 -r、-p、-t、-g、-o、-D 选项。

-r

意味着以递归方式处理子目录。 主要用于目录。 如果单独传输文件,则不需要添加-r选项,但传输目录时必须添加-r选项。

-v

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

-l

表示保留软连接。

-L

表示软链接被视为常规文件。 如果SRC中有软链接文件,添加该选项会将软链接指向的目标文件复制到DEST。

-p

表示保留文件权限。

-o

表示维护文件所有者信息。

-G

表示维护文件组信息。

-D

表示保存设备文件信息。

-t

表示保留文件时间信息。

--

表示删除DEST中SRC中不存在的文件。

--=

表示指定排除不需要传输的文件。 等号后跟文件名,可以是通配符模式(例如 *.txt)。

--

表示在同步过程中可以看到同步进程状态,如同步文件数量统计、同步文件传输速度等。

-u

表示DEST中比SRC更新的文件将被排除并且不会被覆盖。

-z

使用此选项,将在传输过程中执行压缩。

上面仅列出了 async 命令的一些常用选项。 对于初学者来说,只需记住最常用的选项,例如 -a、-v、-z、-- 和 --。

如果想查看async提供的所有选项,可以直接执行async命令。

为了更好地展示各个选项的功能,需要做一些准备工作。 执行以下命令:

#新建rsync目录

[root@ ~]# mkdir rsync

[root@ ~]# cd rsync

#在rsync目录下创建test1目录

[root@rsync]# mkdir test1

linux命令工具_linux系统状态命令_linux网络状态工具ss命令详解

[root@rsync]# cd test1

#在test1目录下,分别创建名为1、2、3、/root.123.txt的文件。

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

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

[root@test1]# ls -l

总计 0

-rw-r--r--。 1 根 根 0 0ct 23 07:34 1

。 1 根 13 0ct 23 08:34 123.txt -> /root/123.txt

-rw-r--r--。 1 根 0 0ct 23 07:34 2

-rw-r--r--。 1 根 0 0ct 23 07:34 3

[root@test1]# cd ..

#返回rsync目录

[根@rsync]#

在此基础上,我们选取​​了下面几个常用的选项来给大家举例说明它们的用法。

rsync -a 选项 首先我们看一下-a选项的用法,如下:

[root@rsync]# rsync -a test1 test2

[root@rsync]#ls test2

测试1

[root@rsync]# ls test2/test1/

1 123.txt 2 3

这里有一个问题。 我们原本想把test1目录的内容直接放到test2目录中,但是结果rsync命令新建了一个test2目录,然后把test1放到了test2中。

如果想将test1目录下的内容直接备份到test2目录下,则需要将上面的命令修改为:

[root@rsync]#rm -rf test2

[root@rsync]# rsync -a test1/ test2/

[root@rsync]#ls test2/

1 123.txt 2 3

可以看到,只需在test1和test2目录后面添加/斜杠即可。

前面提到,使用 -a 选项相当于同时使用 -r、-l、-p、-t、-g、-o、-D 选项,并且 -a 还可以与 - 一起使用-不-。 我们来看看-l选项的作用:

[root@rsync]# rm -rf test2

[root@rsync]# rsync -av test1/ test2/

文件列表

测试2

./

非文件“123.txt”

已发送 200 字节 72 字节 544.00 字节/秒

linux命令工具_linux系统状态命令_linux网络状态工具ss命令详解

总大小为 13 为 0.05

这里使用-v选项,可以看到在复制过程中跳过了非普通文件123.txt。 事实上,123.txt是一个软链接文件。 如果不使用-l选项,系统将忽略软链接文件。 rsync -- 选项如表1所示。 -- 选项用于 -- 删除DEST中SRC中不存在的文件。 例如:

#复制test1目录下的数据

[root@rsync]# rsync -a test1/ test2

#删除test1/123.txt文件

[root@rsync]# rm -f test1/123.txt

[root@rsync]#ls test1/

1 2 3

[root@rsync]# rsync -av test1/ test2/

文件列表

./

已发送 55 字节 15 字节 140.00 字节/秒

总大小为 0 为 0.00

[root@rsync]#ls test2/

1 123.txt 2 3

可以看到,删除test1目录下的123.txt文件后,再次备份并没有对test2目录下的123.txt文件产生任何影响。

使用下面的--选项再次执行复制命令,如下图:

[root@rsync]# rsync -av --test1/ test2/

文件列表

123.txt

已发送 52 字节 12 字节 128.00 字节/秒

总大小为 0 为 0.00

[root@rsync]#ls test2/

1 2 3

可以看到,使用--选项备份数据时,一旦test1目录发生改变,test2也会随之改变。

不仅如此,如果文件添加到DEST但不包含在SRC中,那么使用--选项进行同步备份操作时,DEST添加的文件将会被删除。 例如:

[root@rsync]# 触摸测试2/4

[root@rsync]#ls test1/

1 2 3

[root@rsync]#ls test2/

1 2 3 4

[root@rsync]# rsync -a -- test1/ test2/

[root@rsync]#ls test2/

1 2 3

由于篇幅限制,本节不会给出 rsync 命令其他选项的具体使用示例。 有兴趣的读者可以自己编写代码进行测试。

标签: 选项 命令 目录

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码