Bootstrap

Linux使用rsync上传文件,如何 linux 系统中使用 rsync 进行本地和远程数据传输和同步...

Rsync是一种快速且通用的命令行实用程序,它通过远程shell或从/到远程rsync守护程序在两个位置之间同步文件和文件夹。它通过仅传输源位置和目标位置之间的差异来提供快速增量文件传输。

rsync的可用于系统之间,并作为一个替换镜像数据,增量备份,复制文件scp,sftp和

在本教程中,我们将向您展示如何通过实际示例和最常见的rsync选项的详细说明来使用rsync。

安装Rsync

rsync实用程序已预安装在大多数Linux发行版和Mac OSX上。您可以通过键入以下内容来检查系统上是否安装了它:

rsync --version

输出类似如下:

rsync version 3.0.6 protocol version 30

Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.

Web site: http://rsync.samba.org/

Capabilities:

64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,

socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,

append, ACLs, xattrs, iconv, symtimes

rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you

are welcome to redistribute it under certain conditions. See the GNU

General Public Licence for details.

如果您的系统上没有安装rsync,则可以使用分发包管理器轻松安装它。

在Ubuntu和Debian上安装Rsync

sudo apt install rsync

在CentOS和Fedora上安装Rsync

sudo yum install rsync

Rsync命令语法

在讨论如何使用rsync命令之前,让我们先回顾一下基本语法。

rsync命令表达式采用以下形式:

Local to Local: rsync [OPTION]... SRC [SRC]... DEST

Local to Remote: rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST

Remote to Local: rsync [OPTION]... [USER@]HOST:SRC [DEST]

OPTION- rsync选项

SRC - 源目录

DEST - 目标目录

USER - 远程用户名

HOST - 远程主机

Rsync提供了许多控制其行为的每个方面的选项。最广泛使用的选项是:

-a,--archive归档模式,相当于-rlptgoD。常用选项,用于递归同步目录,传输特殊设备和阻止设备,保留符号链接,修改时间,组,所有权和权限。

-z,--compress此选项将强制rsync在将数据发送到目标计算机时压缩数据。仅当与远程计算机的连接速度较慢时才使用此选项。

-P相当于--partial --progress。此选项将告诉rsync在传输过程中显示进度条并保留部分传输的文件。在通过慢速或不稳定的网络连接传输大型文件时,它非常有用。

--delete使用此选项时,rsync将从目标位置删除无关文件。它对镜像很有用。

-q,--quiet。如果要禁止显示非错误消息,请使用此选项。

-e。此选项允许您选择其他远程shell。默认情况下,Rsync配置为使用ssh。

基本Rsync用法

要将单个文件从一个文件复制到另一个本地位置,您将运行以下命令:

rsync -a /opt/filename.zip /tmp/

从目标位置省略文件名会使用当前名称复制文件。如果要以不同的名称保存文件,则需要指定新名称:

rsync -a /opt/filename.zip /tmp/newfilename.zip

在下面的示例中,我们将创建网站文件的本地备份:

从目标位置省略文件名会使用当前名称复制文件。如果要以不同的名称保存文件,则需要指定新名称:

rsync -a /opt/filename.zip /tmp/newfilename.zip

在下面的示例中,我们将创建网站文件的本地备份:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

如果目标目录不存在,rsync将创建它。

值得一提的是,rsync使用尾部斜杠对源目录进行不同的处理/。如果在源目录中添加尾部斜杠,它将仅将目录的内容复制到目标目录。当省略尾部斜杠时,rsync将复制目标目录中的源目录。

如何使用Rsync从远程计算机同步数据

使用rsync进行远程传输时,必须同时在源计算机和目标计算机上安装。新版本的rsync配置为使用SSH作为默认远程shell。

在以下示例中,我们将目录从本地传输到远程计算机:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/

如果尚未设置无密码SSH登录到远程计算机,则会要求您输入用户密码。

如果要将数据从远程数据传输到本地计算机,则需要使用远程位置作为源:

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

如果远程主机上的SSH正在侦听默认端口22以外的端口,则可以使用以下-e参数指定端口:

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

传输大量数据时,建议在屏幕会话中运行rsync命令或使用该-P选项。

排除文件和目录

当排除文件或目录,您需要使用它们的相对路径。使用rsync时,有两个选项可以排除文件和目录。

第一个选项是使用--exclude参数并在命令行中指定要排除的文件和目录。在下面的示例中,我们排除了位于其中的node_modules和tmp目录src_directory

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

第二个选项是使用--exclude-from参数并指定要在文件中排除的文件和目录。

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/

/exclude-file.txt

node_modules

tmp

写在最后

在本教程中,您学习了如何使用Rsync复制和同步文件和目录。在Rsync用户手册页面上还有很多关于Rsync 的知识。

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;