前言
有時會有從遠程服務器傳大文件到本地的需要,傳統的 scp 命令雖然保證了數據的安全性,但是速度極慢,這里采用將大文件分割成小文件,分段傳輸的方式,本地只要將小文件合並成一個文件即可
分割及合並
分割命令
使用 split 命令進行分割,假設原始文件有 1.55G,那么用下面的命令會將文件分割成 16 個小文件,前 15 個文件大小都是 100m,最后一個文件為剩余大小。命令執行后會自動生成16個文件,小文件默認命名方式為xaa、xab、xac、xad...
# 分割命令split,-b參數指定分割后文件的大小,單位可以是k也可以是m,xxx為文件名 split -b 100m xxx
合並命令
合並后的文件的后綴最好和之前的大文件一致,不然可能會出現問題
# 將小文件合並成一個文件,文件名為xx.tar cat xaa xab xac xad xae > xx.tar
文件傳輸
文件傳輸當然也可以使用 scp,但是考慮到 scp 穩定性一般,網絡波動很容易造成 broken pipe,這里用 flask 寫了一個接口,用於下載文件,瀏覽器訪問網址即可下載(瀏覽器支持迅雷接管下載,就不用擔心斷點無法續傳的問題了)