前言
有时会有从远程服务器传大文件到本地的需要,传统的 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 写了一个接口,用于下载文件,浏览器访问网址即可下载(浏览器支持迅雷接管下载,就不用担心断点无法续传的问题了)