本篇文章更新時間:2020/03/18
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~


這工具絕對是提到兩台主機間想要同步檔案或是備份檔案的首選,效能高又支援跨平台。

以下僅筆記在 Linux 類型作業系統下的使用。

在 Linux 類型(Ubuntu, Mac..等知名常聽過)的作業系統下,這工具是內建的。所以安裝這過程就不用多說了。真的沒有網路上也一堆,絕對不差我這篇!

基本使用技巧

rsync 參數 來源路徑 目標路徑

這邊的來源路徑其實可以改成本地端電腦的路徑,也就是同一台電腦內同步也可以。本文舉例遠端使用案例比較符合常見作業。

Linode_rsync
引用 Linode 的這篇 Backing Up Your Data 文件。

上圖可以看到,能「本機對本機」、「本機對遠端」、「遠端對本機」與「遠端對遠端」這四種情境去同步備份檔案資料。

常用參數

  1. -a:保留遠端路徑的檔案的擁有者、群組、權限以及時間戳記等資訊的封裝,也屬遞迴批次處理。
  2. -v:觀測執行輸出用,能輸出詳細操作的資訊。
  3. -h:把輸出數字用「比較容易閱讀」的格式輸出(至少mb顯示檔案大小)。
  4. -z:啟用壓縮。
  5. --exclude 'xxx.log' 這組參數能夠重複使用。如果是路徑的話要輸入的是相對於「遠端路徑」的相對路徑。
  6. --exclude-from='紀錄檔案路徑' 如果要排除的路徑或檔案很多,建議改寫在一個檔案裡來用這參數引入。這邊是寫該紀錄檔案的路徑,檔案內一行一個設定。

(更多「排除檔案或目錄的寫法參考」)

其他參數

rsync 有很多用法,大部分除了上述常用參數外,其他不一定「常用」但「實用」的參數,紀錄如下:

  1. --delete 讓本地端的同步檔案與遠端一致,如果遠端刪除檔案,本地端也會刪除。(預設不會刪除哦!)
  2. --dry-run 「乾跑模式」XD,就是模擬實測,但不會真的去執行,測參數玩法可以用這參數。
  3. --link-dest=本機的主備份存放目錄 這參數如果用在每天在備份/同步不同目錄時一定要開啟,意思是它可以比較這個指定的一個版本,只從遠端複製回有差異的部分,其他一樣的檔案就從這主備份目錄複製,節省每次傳輸流量。(每次的備份都可以改指向前一次的目錄)

參數補充說明

其他還有很多應用,像是如果比較希望跑在 ipv4ipv6 的網路可以設定、希望檔案多大多小內不要執行可以設定、限制執行時頻寬不要佔用也可以設定。

可以參考 rsync -h 這指令來查看更多!玩法也很多,上網找一堆~

來源路徑

建議設定別名的連線方式,參考 Linux & Mac 下 SSH 快速連線設定 這篇。

這樣遠端路徑的時候可以減少很多時間,如下:

rsync -avhz MYVPS:/home/mxp ~/BACKUP

MYVPS 就是別名,備份、同步那台機器上的 /home/mxp 目錄到本機使用者目錄下的 BACKUP 資料夾。就算有改 SSH 連線的 Port 號,也是在別名設定檔案裡設定好了!

目標路徑

這塊其實不用多講,就是把遠端的檔案拉回到你本地端指定的路徑。

唯一要記得的事如果用在其他地方(如下週期性操作),輸入絕對路徑避免操作上發生問題。

rsync 應用

  1. 完全同步遠端主機檔案至本機

    rsync -avhc --delete MYVPS:/home/mxp ~/Backup
  2. 每日四點備份遠端主機檔案至本機

    crontab -e #加入下方指令
    0   4   *   *   *   rsync -ahvz --delete --link-dest=~/backups/public_origin  MYVPS:~/public /path/to/backups/public_$(date -I) 1>> /root/rsync.log 2>> /root/rsync.err
  3. [Linux] 使用 rsync 工具快速刪除大量資料與目錄

  4. 排除某些目錄或檔案的同步處理

    rsync -azhv --delete --exclude-from='/path/to/logfile.txt' MYVPS:/home/mxp ~/BACKUP

    然後在 /path/to/logfile.txt 路徑上建立這檔案,每行一個設定,像是: *.txt 排除所有 txt 檔案,或是 do/not/backup 這樣的相對路徑(等於是遠端主機的 /home/mxp/do/not/backup 路徑)

後記

對物件儲存(Object Storage)的雲端空間, 使用 Rclone 就超方便,對主機間就屬 rsync 了! 兩大「R」開頭神器~

之前提到過 Rclone : [網站] 備份方式與發生問題需要緊急復原的流程[WordPress] 使用 DigitalOcean Spaces Sync 實作 CDN 加速網站

能靈活運用這兩套對管理檔案一定很有幫助!


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[//////////____30%_________]

參與討論

2 則留言

  1. Dry Run 乾跑不好玩,我覺得改成「窮忙模式」比較讚。

  2. Dry 這字真的是很妙。 用在酒上就是那酸澀、強烈感,實在很難形容。不知道 Dry Run 是有什麼典故。的確就是一種白忙一場、窮忙貌

發佈留言

發佈回覆給「Alex Lion」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *