概述
rsync 使用「增量傳輸」方法,僅傳輸檔案的變更部分,這使得在同步大型檔案或大量檔案時非常有效。它可以傳輸本地檔案系統之間、本地到遠端,以及遠端到本地的檔案。
主要特點
- 增量傳輸(僅傳輸變更部分)
- 支援本地和遠端同步
- 保留權限、擁有者、時間戳記等元數據
- 壓縮傳輸和頻寬控制
- 指定檔案排除/包含模式
主要選項
rsync 提供非常多樣的選項,以下是最常用的選項。
基本操作與歸檔
傳輸控制
網路
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`rsync` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用範例
rsync 的各種使用場景範例。
同步本地目錄(最常見)
rsync -avz /path/to/source/ /path/to/destination/
將 source 目錄的內容複製/同步到 destination 目錄。-a(歸檔)、-v(詳細)、-z(壓縮)的組合是最常見的。
推送到遠端伺服器(Push)
rsync -avz /path/to/local_source/ user@remote_host:/path/to/remote_destination/
將本地的 source 目錄同步到遠端伺服器的 destination 目錄。
從遠端伺服器拉取(Pull)
rsync -avz user@remote_host:/path/to/remote_source/ /path/to/local_destination/
將遠端伺服器的 source 目錄同步到本地的 destination 目錄。
鏡像來源與目標(--delete 選項)
rsync -avz --delete /path/to/source/ /path/to/destination/
使來源目錄與目標完全一致。來源中不存在的檔案將從目標中刪除。強烈建議先使用 `--dry-run` 進行測試。
排除特定檔案/目錄
rsync -avz --exclude='*.log' --exclude='temp/' /path/to/source/ /path/to/destination/
排除日誌檔案和 'temp' 目錄進行同步。
執行前模擬(--dry-run)
rsync -avz --delete --dry-run /path/to/source/ /path/to/destination/
不實際更改檔案,預覽 rsync 將執行的操作。特別是與 `--delete` 選項一起使用前是必需的。
安裝
rsync 通常預設安裝在大多數 Linux 發行版中,如果尚未安裝,可以使用以下命令進行安裝。
Debian/Ubuntu
sudo apt update
sudo apt install rsync
CentOS/RHEL/Fedora
sudo yum install rsync
Arch Linux
sudo pacman -S rsync
提示與注意事項
為了更有效率且安全地使用 rsync 的提示和注意事項。
路徑末尾斜線(/)的重要性
來源路徑末尾是否有斜線會影響其行為。
- `/path/to/source/`(有斜線):將 `source` 目錄的「內容」複製到目標。
- `/path/to/source`(無斜線):將 `source` 目錄「本身」複製到目標。(目標目錄中會創建一個 source 目錄)
善用 --dry-run 選項
特別是當使用 `--delete` 等破壞性選項時,務必先使用 `--dry-run` 進行測試,以防止意外的數據丟失。
權限和擁有者問題
`--archive` 選項會嘗試保留權限和擁有者,但如果目標系統上不存在相應的使用者/群組或沒有權限,可能會出現問題。在這種情況下,可以考慮使用 `sudo` 或 `--no-p`(不保留權限)、`--no-o`(不保留擁有者)、`--no-g`(不保留群組)等選項。
頻寬限制
為了避免過度使用網路頻寬,可以使用 `--bwlimit=KBPS` 選項來限制傳輸速度。(例如:`--bwlimit=1000` 將速度限制為 1MB/s)