linux下载大文件失败,Linux下FTP/SFTP传输大文件总是失败的处理办法

海外服务器,一般延迟都比较高。如果不是China Telecom/China Unicom路由直连,延迟更加的不稳定,甚至长连接会经常闪断。国内跨运营商服务器,没有BGP网关,也同样会发生这样的情况,不过要比海外的好很多。

由于需要,需要往上述条件下的服务器拷贝一些大文件过去,此为背景。

文件普遍都在GB级别,一开始使用FileZilla使用SFTP直接传输文件,但经常出现文件传输了没有三分之一就出现闪断,闪断几次之后直接失败。后来换用了FTP协议传送文件,问题依然出现。一宿的时间传不了几个文件上去,也是一件很恼火的事情。

查资料也没有什么好的解决办法,最终决定将大文件分割,分片上传。这样至少能够保证已经传送的分片是完整的,遇到重传也只需要补传分片,并不需要重传整个文件。虽然没有完美的解决问题,但是至少很大的提高了效率。

由于服务器和客户机使用的Linux和Mac系统,分割合并文件十分的方便,基本一条命令可以搞定的事情。如果是windows的话,要更麻烦一些。如果传送的文件量很大的话,也可以考虑使用sh脚本进行批处理。

在Mac下使用split命令对文件进行分割:

Mac和Linux下的split命令有一定的差异,这个需要稍微注意一下。关于split命令的详细参数和使用方法,官方文档有,不过man一下更简单。

61605E44-B3D5-4C02-9B9C-75359BEC2D9B.jpg直接使用如下命令就可以对文件进行分割,不过建议先对文件进行压缩

split -b 200m file_name file_name_

执行完成后会在当前目录产生被分割的文件,默认以_[a-z]2结尾。这样文件就分割好了,然后直接通过FileZilla等FTP工具上传到服务器即可。

在服务器端直接使用如下命令就可以将文件聚合,如果压缩了还需要进行解压缩

cat file_name_* > file_name

不过为了保证文件的一致性,建议对本地源文件和服务器已经聚合后的文件做MD5校验。Mac下直接用md5命令,在Linux下则为md5sum命令。如果两边的校验值一致,说明文件是没有问题的。

通过这种方法,虽然没有完美解决,但是在很大的程度上缩短了整体的文件处理时间,也着实是一种无奈之举。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值