對於經常需要在不同裝置之間傳輸檔案的人來說,如何有效率地進行檔案傳輸是一個很重要的問題。兩個非常常見的工具——SCP 和 Rsync,可以幫助我們在 Linux 系統中輕鬆實現檔案傳輸,而且還有各自獨特的優勢。
scp指令 – 遠端拷貝檔案
#scp 拷貝本機檔案filename 到遠端機器 192.168.188.188 伺服器的/data/tmp目錄下
scp -P 61204 -l 40000 filename username@192.168.188.188:/data/tmp/
-P port
Specifies the port to connect to on the remote host. Note that this option is written with a capital ‘P’, because -p is already reserved for preserving the times and modes of the file in rcp(1).
#-P 指定遠端伺服器ssh服務的連接埠 如:ssh連接埠為61204
-l limit Limits the used bandwidth, specified in Kbit/s.
-l 指定拷貝的速度限制 單位是ct/s 如:-l 40000 表示40000Kbit/s=40000/8KB=5MB的速度
註:scp不支援斷點續傳
rsync ssh 斷點續傳
##rsync同步本機檔案 filename 到遠端機器 192.168.188.188 伺服器的/data/tmp目錄下
rsync -avzP -e 'ssh -p 61204' -- bwlimit=5000 filename username@10.20.90.101:/data/tmp/ >> scp_to_101.log
-a:以archive模式操作,複製目錄、符號連接,等價於 -rlptgoD 。
-v:詳細提示
-z:壓縮
-P:是綜合了–partial –progress兩個參數
–partial
如果在拷貝檔案的過程中,傳輸中斷,rsync的預設操作是撤銷前操作,即從目標機上刪除已拷貝的部分檔案。
如果想在下次拷貝時續傳文件,不需要重新拷貝所有文件的話,可以使用-partial選項阻止rsync在傳輸中斷時刪除已拷貝的部分
–progress 顯示進度列
-e:參數的作用是可以使用戶自由選擇欲使用的shell程式來連接遠端伺服器
ssh -p 61204
指定ssh的連接埠(非預設22)61204
–bwlimit: –bwlimit=5000 限制頻寬為5000k Bytes/s =5MB
上例:使用rsync傳輸本機檔案filename到192.168.188.188的/data/tmp目錄下 使用壓縮歸檔傳輸、限速5MB、支援斷點續傳 使用ssh協定
綜上所述,無論是使用 SCP 或 Rsync,都可以幫助我們在 Linux 系統中實現快速、安全、可控的檔案傳輸。透過正確地選擇和應用這兩個工具,我們可以更有效率地管理我們的文件和數據,從而提高我們的工作效率。
以上是一篇文章搞定 Linux 檔案傳輸:SCP 和 Rsync 幫你有效率地管理數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!