首頁 > 壓縮與封存 > rsync

rsync 命令完全征服

本指南介绍了在 Linux 中高效同步和备份文件和目录的 `rsync` 命令。可以安全快速地在本地和远程系统之间进行增量复制和同步。

主要选项

尝试组合 `rsync` 命令的各种选项以设置文件同步和备份工作。

1. 基本同步

2. 传输模式及选项

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`rsync` 執行命令。

請將上述選項組合在一起,與 AI 一同虛擬執行命令。

rsync 工作原理

`rsync` 使用“增量编码(delta encoding)”算法仅传输文件的更改部分,从而有效利用网络带宽。这使得在同步大文件或大量文件时非常快速和高效。

rsync 的主要特点

`rsync` 与其他复制工具的核心功能的不同之处。

  • 增量传输 (Delta Transfer): 仅识别源和目标文件之间的差异进行传输。通过仅传输更改的块来最大化效率,而不是重新复制整个文件。
  • 增量备份 (Incremental Backup): 仅复制自上次备份以来更改的文件,因此无需每次都进行全面备份,从而节省时间和空间。
  • 远程同步: 可以通过包括 SSH 在内的多种远程 Shell 以加密通道传输文件,从而提高安全性。
  • 文件属性保留: 使用归档模式(`-a`)时,所有文件属性(权限、所有者、组、时间戳、符号链接等)均得以保留。

Trailing Slash (路径最后斜杠) 的重要性

`rsync` 中源路径最后是否加斜杠(`/`) 非常重要。 - `source/`:复制 `source` 目录 **内的内容**。(例如:`cp source/* dest/` 类似) - `source`:复制 `source` 目录 **本身**。(例如:`cp -r source dest/` 类似) 如果不理解这个差异,可能会导致意想不到的结果。

使用示例

通过 `rsync` 命令的实用使用示例建立文件同步和备份策略。

本地目录同步 (归档模式)

rsync -av /path/to/source_dir/ /path/to/destination_dir/

将 `source_dir` 的内容同步到 `destination_dir`。保持所有权限、时间等属性。`source_dir` 中不存在的文件不会在 `destination_dir` 中被删除。

将目录镜像到远程服务器 (备份)

rsync -avz --delete --progress /local/my_data/ user@remote_host:/remote/backup/

将本地的 `my_data` 目录内容镜像到远程服务器的 `/backup/` 目录。源中不存在的文件在目标中也会被删除。使用压缩并显示进度。

从远程服务器获取特定文件

rsync -avz --include='*.log' --exclude='*' user@remote_host:/var/log/ /tmp/logs/

从远程服务器的 `/var/log/` 目录仅获取 `.log` 文件到本地的 `/tmp/logs/` 目录。

无需实际执行的更改预览

rsync -avz --delete --dry-run /path/to/source/ /path/to/destination/

不实际传输或删除文件,而是提前展示将要发生的更改。在重要的同步之前总是建议使用。

使用不同的 SSH 端口进行同步

rsync -avz -e "ssh -p 2222" /local/src/ user@remote_host:/remote/dest/

使用非默认 SSH 端口(22)的 2222 端口与远程服务器同步文件。


相同類別命令