介紹如何在 Linux 系統上以 rsync
續傳 scp
尚未傳輸完成的檔案。
若要在不同 Linux 主機之間傳輸檔案,通常都會使用
scp
指令來傳輸:
# 以 scp 傳輸檔案 scp large_file user@192.168.12.34:/home/user/
而當檔案比較大,或是網路不穩定時,scp
的傳輸有可能會中斷,造成部分檔案沒有傳輸完成,但是 scp
本身無法續傳,若不想重新傳一次,可以改用 rsync
加上 -P
參數來續傳:
# 以 rsync 續傳檔案 rsync -P large_file user@192.168.12.34:/home/user/
這樣 rsync
就會自動檢查兩邊的檔案,自動從上次中斷的地方開始繼續傳輸。
rsync
的 -P
參數就等於 --partial
與 --progress
兩個參數,分別代表續傳以及顯示進度的意思,所以上面的指令就等於:
# 以 rsync 續傳檔案 rsync --partial --progress large_file user@192.168.12.34:/home/user/
實務上在使用 rsync
傳輸資料時,通常還會加上 -a
(保留所有檔案屬性)、-z
(壓縮傳輸)與 -v
(顯示詳細資訊)等參數:
# 以 rsync 續傳檔案 rsync -avzP large_file user@192.168.12.34:/home/user/
參考資料:OSTechNix