rsync 命令及其示例
rsync或远程同步是类 Unix 系统的软件实用程序,可高效地在两台主机或机器之间同步文件和目录。一个是源或本地主机,文件将从该主机同步,另一个是远程主机,同步将在该主机上进行。rsync 复制/同步数据的方式基本上有两种:
- 通过任何远程 shell(比如ssh、rsh)与另一台主机复制/同步。
- 使用 TCP 通过 rsync 守护进程进行复制/同步。
Rsync 以其增量传输算法而闻名,该算法仅复制本地主机中存在的源文件与目标或远程主机中现有文件之间的差异。
例子:
rsync local-file user@remote-host:remote-file
Rsync 首先会使用 SSH 连接到user
远程主机并要求输入user's
密码。连接后,它会调用远程主机的 rsync,然后这两个程序会确定需要复制本地文件的哪些部分,以便远程文件与本地文件匹配。请注意 rsync 的以下行为:
- 复制远程主机上不存在的文件。
- 已更新的文件将被同步,rsync 将仅将文件更改的部分复制到远程主机。
- 完全相同的文件不会被复制到远程主机。
Linux 中 `rsync` 命令的语法
rsync [options] source [destination]
Linux 中 `rsync` 命令的可用选项
选项 |
描述 |
---|---|
a、–存档 |
这相当于使用-rlptgoD。存档模式包括所有必要的选项,如递归复制文件、保留几乎所有内容(如符号链接、文件权限、用户和组所有权以及时间戳)。 |
-v、–详细 |
默认情况下,rsync 会默默运行。使用单个“-v”选项可提供有关已传输文件的信息,并在最后提供摘要。添加两个“-v”选项可提供有关增量传输和跳过的文件的状态更新,并在最后提供更多信息。多个“-v”选项通常用于调试 rsync。 |
-h, –人类可读的格式 |
以人类可读的格式输出。 |
-z,-压缩 |
在传输过程中压缩文件数据 |
如果仅指定了源路径,则源的内容将以类似于的输出格式列出ls -l
。
rsync foo/
输出: