本文研究的主要內(nèi)容是Linux下如何傳輸超大文件,具體如下。
linux下的文件傳輸,大家首先會(huì)想到rsync、scp之類的工具,但這類工具有一個(gè)特點(diǎn)——慢,因?yàn)檫@類工具都是加密傳輸,發(fā)送端加密,接收端解密,當(dāng)我們傳輸一些非敏感文件的時(shí)候,完全可以不加密,直接在網(wǎng)絡(luò)上傳輸。
直接上實(shí)例,傳輸一個(gè)2077M的ISO文件。
nc發(fā)送接收數(shù)據(jù)
接收端:
nc -l 45.55.0.86 9999 > jieshou.iso
➤ -l :監(jiān)聽一個(gè)端口來接收數(shù)據(jù)
➤ -u : 不使用 TCP 而是使用 UDP 來進(jìn)行數(shù)據(jù)連接(應(yīng)該速度更快,沒試)
整條命令的意思:本地開啟9999端口來接收數(shù)據(jù),把接收到的數(shù)據(jù)存到“jieshou.iso”文件里面。
發(fā)送端:
time nc 45.55.0.86 9999 CentOS-6.9-x86_64-bin-DVD2.iso
命令最前面的time是用來檢測(cè)該命令運(yùn)行耗時(shí)的。
24秒就在公網(wǎng)上傳完了一個(gè)2077M的文件,平均速度高達(dá)87M/s,傳輸完畢后在兩端校驗(yàn)MD5,發(fā)現(xiàn)文件完全一致。
用nc傳輸有兩個(gè)特點(diǎn):
➤速度快
➤傳輸簡(jiǎn)單,不需要登錄對(duì)方服務(wù)器,不需要驗(yàn)證信息。
nc進(jìn)度顯示
若你文件實(shí)在太大,想看到傳輸進(jìn)度,用PV
yum install epel-release -y
yum install pv -y
cat CentOS-6.9-x86_64-bin-DVD2.iso |pv -b | nc 45.55.0.86 9999
傳輸目錄
接收端:
nc -l 45.55.0.86 9999 | pv -b > home.tar.gz
發(fā)送端:
tar -czf - /home/ | nc 45.55.0.86 9999
中轉(zhuǎn)文件
A、B、C三臺(tái)主機(jī),A美國(guó),C昌南,C只能訪問到B,不能直接訪問A,B和AC互通。C要怎么才能拿到A上的文件呢?
C上執(zhí)行:
nc -l 9999 > google_file.txt
B上執(zhí)行:
nc -l 9999 | nc (C的外網(wǎng)IP) 9999
A上執(zhí)行:
nc (B的外網(wǎng)IP) 9999 google_file.txt
以上就是腳本之家分享給大家的關(guān)于Linux傳輸超大文件方法介紹的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!