Linux中的Rsync命令示例

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

Rsync可用于镜像数据,增量备份,在系统之间复制文件,并可替代 scpsftpcp 命令。

本文介绍了如何使用 rsync 通过实际示例和最常见的详细说明 rsync 选项。

安装Rsync#

rsync 该实用程序已预先安装在大多数Linux发行版和macOS上。 如果没有 rsync 安装在系统上,您可以使用发行版的程序包管理器轻松安装它。

在Ubuntu和Debian上安装Rsync#

sudo apt install rsync

在CentOS和Fedora上安装Rsync#

sudo yum install rsync

Rsync命令语法

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

rsync 实用程序表达式采用以下形式:

Local to Local:  rsync [OPTION]... [SRC]... DEST
Local to Remote: rsync [OPTION]... [SRC]... [[email protected]]HOST:DEST
Remote to Local: rsync [OPTION]... [[email protected]]HOST:SRC... [DEST]
  • OPTION -rsync选项。
  • SRC -源目录。
  • DEST -目标目录。
  • USER -远程用户名。
  • HOST -远程主机名或IP地址。

rsync 提供了许多选项来控制命令的行为。 最广泛使用的选项是:

  • -a--archive,存档模式,相当于 -rlptgoD。 这个选项告诉 rsync 递归同步目录,传输特殊设备和块设备,保留符号链接,修改时间,组,所有权和权限。
  • -z--compress。 此选项强制 rsync 在将数据发送到目标计算机时对其进行压缩。 仅当与远程计算机的连接速度较慢时才使用此选项。
  • -P, 相当于 --partial --progress。 使用此选项时, rsync 在传输过程中显示进度条,并保留部分传输的文件。 通过慢速或不稳定的网络连接传输大文件时很有用。
  • --delete。 使用此选项时, rsync 从目标位置删除无关的文件。 这对于镜像很有用。
  • -q--quiet。 如果要禁止显示非错误消息,请使用此选项。
  • -e。 此选项使您可以选择其他远程外壳。 默认, rsync 配置为使用ssh。

Rsync基本用法

最基本的用例 rsync 是将单个文件从一个文件复制到另一个本地位置。 这是一个例子:

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

运行该命令的用户必须对源位置具有读取权限,而对目标必须具有写入权限。

从目标位置省略文件名将复制具有当前名称的文件。 如果要使用其他名称保存文件,请在目标部分指定新名称:

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

的真正力量 rsync 在同步目录时出现。 下面的示例显示了如何创建网站文件的本地备份:

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/ [email protected]_host_or_ip:/opt/media/

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

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

rsync -a [email protected]_host_or_ip:/opt/media/ /opt/media/

如果远程主机上的SSH正在侦听默认端口22以外的端口,请使用 -e 选项:

rsync -a -e "ssh -p 2322" /opt/media/ [email protected]_host_or_ip:/opt/media/

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

rsync -a -P [email protected]_host_or_ip:/opt/media/ /opt/media/

排除文件和目录

有两个选项可以排除文件和目录。 第一种选择是使用 --exclude 参数,并在命令行上指定要排除的文件和目录。

当排除文件或目录时,您需要使用它们到源位置的相对路径。

在以下示例中,显示了如何排除 node_modulestmp 目录:

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的知识。

如有任何疑问,请随时发表评论。

rsync终端

Sidebar