Linux rsync命令示例

时间:2020-02-23 14:39:58  来源:igfitidea点击:

Rsync是远程同步的缩写,是一个Linux命令,用于在2个Linux系统之间复制和同步文件。
它的工作方式是,在另一个Linux系统上复制对文件或者目录所做的任何其他更改。

使用Linux rsync命令,您可以在Linux系统和服务器之间本地和远程无缝复制和同步备份。
在本文中,我们将研究可与rsync命令一起使用的各种命令选项。

Linux rsync命令的基本语法

下面简要总结了rsync的语法。

$rsync options source destination

与rsync命令一起使用的选项

  • -z:压缩数据。

  • -v:以详细模式显示该进程。

  • -r:该选项以递归方式复制数据(但是,该选项在数据传输期间不保留时间戳和文件许可权)。

  • -h:以人类可读的格式输出信息。

  • -a:这不仅允许递归复制文件,而且还保留符号链接,时间戳,文件权限以及用户和组所有权。

在本地复制文件和目录

您可以使用下面提供的示例在Linux计算机中将文件从一个位置本地同步到另一个位置。

$rsync -zvh backup.tar /opt/backup_dir

在上面的示例中,tar包backup.tar被复制并同步到/opt/backup_dir目录。

要将目录从一个位置本地复制到另一位置:

语法类似于复制文件,只是在这种情况下,我们使用-a标志进行递归复制。

在下面的示例中,我们将deb_packages目录复制并同步到/opt/backup_dir目录。

$rsync -azvh deb_packages /opt/backup_dir

在远程服务器之间复制/同步文件或者目录

要将目录复制到远程服务器,必须在目标文件夹旁边指定服务器的用户名和IP地址。

在下面的示例中,使用根用户凭据将" deb_packages"目录复制到IP为" 66.152.163.19"的远程服务器,并保存在根主目录中。

$rsync -avz deb_packages [email protected]:

要将目录从远程服务器复制并同步到本地PC,请执行以下操作:

要将文件从远程系统复制并同步到本地Linux系统,请使用以下示例

$rsync -avzh [email protected]:documents /opt/backup_dir

在上面的示例中,目录" documents"从具有IP" 66.152.163.19"的远程系统递归复制到"/opt/backup_dir"目录中的本地系统。

通过SSH的Rsync命令

Rsync可以与SSH协议一起使用,以保护或者加密从Linux系统发送和发送的文件。
这样可以确保没有人能够窃听您通过网络传输的数据。

要通过SSH使用rsync将文件从本地服务器复制到远程服务器:

在此示例中,我们将在rsync中使用-e选项来指定协议,在本例中为SSH。

$rsync -avhze ssh backup.tar [email protected]:/backup_dir

要通过SSH使用rsync将文件从远程服务器复制到本地系统,请执行以下操作:

就像前面的示例一样,rsync命令与-e方法一起使用。

$rsync -avzhe ssh [email protected]:/backup_dir /tmp/

使用rsync命令传输数据时显示进度

如果要在数据传输过程中查看进度,请使用--progress选项。
这将显示文件和完成数据传输所需的估计时间。

带有–include和–exclude选项的Linux rsync命令

上面的这些选项可帮助用户"包括"和"排除"他们可能希望在同步过程中包括或者排除的文件。

在下面的示例中,rsync命令将在/var/lib目录中包含以" p"开头的文件,但不包括所有其他文件和目录。

$rsync -avz --include 'p*' --exclude '*' /var/lib [email protected]:/opt/backup_dir

设置要传输的文件的最大大小

您可以使用" –max-size"选项定义要传输和同步的最大文件大小。

$rsync -avzh --max-size='50M' deb_packages [email protected]:/opt/backup-dir

上面的命令将deb_packages目录中的文件传输限制为50 MB。
这意味着仅等于或者小于50 MB的文件将被传输和同步。

成功传输后删除源文件

如果您正在将文件的备份副本复制到远程目标,但又不想保留本地副本,请使用" –remove-source-files"选项,如图所示。

$rsync --remove-source-files -zvh backup.tar /tmp/mybackups/