主要选项
尝试组合 `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 端口与远程服务器同步文件。