我們都使用過 scp 來傳輸文件。當傳輸在中途或甚至在 99% 時被中斷時,(每當我想起99%的中斷傳輸時,我的心都很痛);讓我們看看如何使用 rsync 來替代 scp,避免這樣的不幸。
什么是rsync?
Rsync 是一個快速且極其靈活的文件復制工具。它可以在本地進行復制,通過任何遠程 shell 與另一個主機進行復制,或者通過遠程 rsync 守護進程進行復制。它提供許多選項,可以控制其行為的各個方面,并允許對要復制的文件集進行非常靈活的指定。它以增量傳輸算法而聞名,該算法通過僅發送源文件與目標文件中現有文件之間的差異來減少通過網絡發送的數據量。
Rsync 廣泛用于備份和鏡像,作為日常使用的改進復制命令。 Rsync 使用"快速檢查"算法(默認情況下)來查找需要傳輸的文件,該算法查找大小或最后修改時間發生變化的文件。當快速檢查指示文件的數據不需要更新時,對目標文件直接進行其他保留屬性的更改(如選項請求的那樣)。
可用rsync的平臺
Rsync 適用于任何類 UNIX 平臺,如 Linux 和 MacOS,也許也有一些針對 Windows 的 rsync 衍生版,但我沒有使用過,所以不知道是否存在我們現在討論的所有功能!
如何安裝rsync
在 Ubuntu 和 Debian 衍生版中使用 apt 命令進行安裝。
linuxmi@linuxmi ~/www.linuxmi.com % sudo apt install rsync在類似 RedHat 和 Centos 的 RPM 系統中,請使用 yum 命令安裝 rsync:
linuxmi@linuxmi ~/www.linuxmi.com % sudo yum install rsync在 Mac 上,請使用 brew 命令安裝 rsync:
linuxmi@linuxmi ~/www.linuxmi.com % brew install rsync您可以通過檢查其版本來驗證是否安裝了rsync:
linuxmi@linuxmi ~/www.linuxmi.com %rsync--version
如何使用rsync?
要將文件從本地主機復制到遠程主機類似于scp,但有更多參數(如果您無法記住參數,別忘了 bash 別名是您最佳選擇):
rsync -partial -z -e 'ssh -p 22' linuxmi.cpp linuxmi@192.168.174.132:/home/linuxmi
linuxmi.cpp是源文件。
linuxmi@192.168.174.132:/home/linuxmi 是用于連接的用戶、遠程主機和路徑。
-e 'ssh -p' 告訴rsync使用端口22的ssh連接。
-z 進行壓縮數據傳輸以加快速度。
-partial 這是一個“黃金”參數,允許我們恢復中斷的傳輸。默認情況下,如果傳輸中斷,rsync將刪除任何部分傳輸的文件。在某些情況下,更希望保留部分傳輸的文件。使用--partial選項告訴rsync保留部分文件,這應該使隨后傳輸剩余文件更快。
如何恢復中斷的傳輸?
如果您在之前的段落中使用了 -partial 參數來啟動傳輸,并且由于某種原因傳輸中斷,您可以重新輸入命令,哇!就像魔術一樣!傳輸會從中斷的點開始!
總結
Rsync 非常強大,還有許多其他參數,比如帶寬限制等,但最重要的參數是保持傳輸的恢復。請在評論中分享您使用scp和rsync的經驗!您覺得我的文章對你有所幫助嗎?
審核編輯:劉清
-
LINUX內核
+關注
關注
1文章
316瀏覽量
21644 -
Shell
+關注
關注
1文章
365瀏覽量
23357 -
RPM
+關注
關注
0文章
44瀏覽量
17710 -
SCP
+關注
關注
0文章
29瀏覽量
9243 -
Ubuntu系統
+關注
關注
0文章
91瀏覽量
3927
原文標題:拋棄 scp 改用 rsync,讓 Linux 下文件傳輸高效無比
文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論