本文研究的主要內容是Linux下如何傳輸超大文件,具體如下。
linux下的文件傳輸,大家首先會想到rsync、scp之類的工具,但這類工具有一個特點——慢,因為這類工具都是加密傳輸,發送端加密,接收端解密,當我們傳輸一些非敏感文件的時候,完全可以不加密,直接在網絡上傳輸。
直接上實例,傳輸一個2077M的ISO文件。
nc發送接收數據
接收端:
nc -l 45.55.0.86 9999 > jieshou.iso
➤ -l :監聽一個端口來接收數據
➤ -u : 不使用 TCP 而是使用 UDP 來進行數據連接(應該速度更快,沒試)
整條命令的意思:本地開啟9999端口來接收數據,把接收到的數據存到“jieshou.iso”文件里面。
發送端:
time nc 45.55.0.86 9999 CentOS-6.9-x86_64-bin-DVD2.iso
命令最前面的time是用來檢測該命令運行耗時的。

24秒就在公網上傳完了一個2077M的文件,平均速度高達87M/s,傳輸完畢后在兩端校驗MD5,發現文件完全一致。
用nc傳輸有兩個特點:
➤速度快
➤傳輸簡單,不需要登錄對方服務器,不需要驗證信息。
nc進度顯示
若你文件實在太大,想看到傳輸進度,用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
發送端:
tar -czf - /home/ | nc 45.55.0.86 9999
中轉文件
A、B、C三臺主機,A美國,C昌南,C只能訪問到B,不能直接訪問A,B和AC互通。C要怎么才能拿到A上的文件呢?
C上執行:
nc -l 9999 > google_file.txt
B上執行:
nc -l 9999 | nc (C的外網IP) 9999
A上執行:
nc (B的外網IP) 9999 google_file.txt
以上就是腳本之家分享給大家的關于Linux傳輸超大文件方法介紹的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!