Linux rsync命令示例
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/