Skip to content

[Linux] 透過 rsync 在不同的裝置間斷點續傳中斷的檔案

Last Updated on 2022-01-05 by Clay

在 Linux 系統中,難免存在著交換檔案的需求,比如說我要將使用者資料從伺服器 A 移動到伺服器 B、或是我有容量很大的電影要從遠端的伺服器傳送到我的裝置本地端……

然而,若是我們很單純地直接使用 scp 指令進行檔案的傳輸,萬一遇到網路不穩導致連線中斷,你會很驚恐地發現 scp 並不支援檔案從斷點繼續開始傳送,你必須重新開始傳送整份檔案…… 這對於網路環境不穩的使用者來說無疑是惡夢。

所幸,rsync 指令就支援這個功能了。本篇文章簡單紀錄該如何使用這個指令來做到斷點續傳。


rsync 指令完成斷點續傳

rsync -P --rsh=ssh [FILE] [REMOTE_IP]:~/


更詳細的指令可以使用 man 去查看:

除此之外網路上也有許多教學推薦將其設定 alias 讓指令簡化,我也覺得挺方便的。

首先使用任意偏好的編輯器打開 ~/.bashrc,並在不影響其他指令設置處(通常尾端便是)寫下:

# Alias
alias rscp="rsync -P --rsh=ssh"


完成之後再使用:

source ~/.bashrc


就會讓設定馬上生效。

順帶一提如果傳輸的裝置端口(port)有經過改動,我們可以將指令修改成:

rsync -P -e 'ssh -p xxxx' [FILE] [REMOTE_IP]:~/


其中 -p xxxx 就是填入指定端口即可。


References


Read More

Tags:

Leave a Reply