技術文章 · IT 指令工具箱

rsync 指令:dry-run、遠端同步、排除與安全刪除

整理 rsync 本機與 SSH 遠端同步、dry-run、archive、進度、排除、限速、checksum、delete 與備份版本的常用指令。

作者 Steve Chen · 發布  · 約 5 分鐘閱讀

IT 指令工具箱 — 廷皓技術專欄插圖

rsync 最需要記住的是來源路徑結尾的斜線:source/ 表示同步內容,source 表示連同目錄本身。任何帶 --delete 的命令都先 dry-run。

20 組範例LinuxmacOS(版本可能較舊)查核日期:2026-08-11
動手前:--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 或系統內建說明確認,再以當版官方文件為準。

聯絡廷皓討論 看更多文章