rsync 最需要記住的是來源路徑結尾的斜線:source/ 表示同步內容,source 表示連同目錄本身。任何帶 --delete 的命令都先 dry-run。
動手前:--delete 會刪除目的端多出的資料;--inplace 可能讓備份失去完整舊版。先確認來源、目的、掛載點與排除規則,保留獨立備份。
本機同步
先 dry-run 看變更rsync
rsync -anv source/ destination/-n 不寫入;檢查新增、更新與目錄層級。
archive 模式同步內容rsync
rsync -av source/ destination/來源結尾 / 代表同步內容。
連同來源目錄本身rsync
rsync -av source destination/結果通常成為 destination/source。
顯示整體進度rsync
rsync -av --info=progress2 source/ destination/舊版 rsync 可能不支援此 info flag。
排除 cache 與 logrsync
rsync -av --exclude='cache/' --exclude='*.log' source/ destination/排除規則相對於傳輸根目錄。
讀取排除清單rsync
rsync -av --exclude-from=exclude.txt source/ destination/把規則放檔案較容易審核。
只同步現有目的檔rsync
rsync -av --existing source/ destination/不在目的端建立新檔。
忽略已存在目的檔rsync
rsync -av --ignore-existing source/ destination/不會更新已存在檔案。
以 checksum 判斷差異rsync
rsync -avc source/ destination/比大小與時間更耗 CPU 與 I/O。
遠端與 SSH
同步到遠端rsync over SSH
rsync -av source/ [email protected]:/srv/backup/先 dry-run 並確認遠端空間。
從遠端拉回rsync over SSH
rsync -av [email protected]:/srv/data/ local-data/遠端來源結尾 / 代表內容。
指定 SSH portrsync over SSH
rsync -av -e 'ssh -p 2222' source/ [email protected]:/srv/backup/SSH 參數放在 -e 字串。
經 SSH config 別名rsync over SSH
rsync -av source/ production:/srv/backup/production 在 ~/.ssh/config 定義。
限制頻寬rsync
rsync -av --bwlimit=2048 source/ [email protected]:/srv/backup/單位依版本文件;常見為 KiB/s。
斷線後保留部分檔rsync
rsync -av --partial --partial-dir=.rsync-partial source/ [email protected]:/srv/backup/完成後留意 partial 目錄清理。
鏡像與版本保留
鏡像前先顯示刪除項rsync
rsync -anv --delete source/ destination/確認清單無誤才移除 -n。
目的端鏡像rsync
rsync -av --delete source/ destination/目的端多出的資料會被刪除,風險高。
延後到最後才刪rsync
rsync -av --delete-delay source/ destination/仍會刪除,只是延到傳輸後段。
把被取代檔移到備份目錄rsync
rsync -av --backup --backup-dir='../changed-2026-08-11' source/ destination/備份目錄位置要確認不會被下一次同步覆蓋。
產生可稽核變更摘要rsync
rsync -anvi source/ destination/-i itemize-changes 有助判讀每一筆差異。
怎麼確認有做對
- 永遠先跑 -n/--dry-run。
- 同步後以檔案數、總量與抽樣 checksum 驗證。
- 確認來源與目的掛載點仍在線,避免把空掛載點同步出去。
常見錯誤
- 來源結尾斜線看錯。
- 沒 dry-run 就加 --delete。
- 備份磁碟未掛載,rsync 把資料寫到本機空目錄。
- macOS 內建 rsync 版本較舊,直接照新版本選項。
版本與官方文件
參數會隨工具版本與作業系統實作改變。正式環境先用 --help、-h 或系統內建說明確認,再以當版官方文件為準。