curl用ftp方式断点续传下载上传文件

论坛 期权论坛     
选择匿名的用户   2021-5-30 02:19   115   0
<p> </p>
<p><span style="color:#3366ff; font-size:12px">当时在开发《中国联通OSS-GSMWCDMA网络优化支撑系统部省接口技术》   时,部省接口广东省级系统需要在前端机采集华为bdf参数文件,由于网络设备原因,再经过多次与广东省联通局方沟通,他们也不愿意优化网络设备(可能需要申请经费购买相关设备),我发现每当连接上ftp服务器要读取(部分)时数据,就会出现io异常或读取数据超时,就会出现采集不全情况。<br> 说明:一般从ftp服务器读取数据几十字节到几百字节几KB不等,不连续,且不稳定,而且网络是经常间歇性的中断。</span></p>
<p><span style="color:#3366ff; font-size:12px">业务功能说明:华为给了一个他们前端机服务器ftp的帐号信息。我们需要采集24个不同dbf文件,然后把24个文件打包成XXX.tar.gz文件上传到联通总部系统,如果缺少一个dbf文件就算不合格的。</span><br> <span style="color:#99cc00">解决办法:1. 一个dbf文件一般大小不超过500KB,但是curl在下载有时只有每秒几十字节或几字节,那我们就需要考虑(观察)下载一个dbf文件大约需要多长时间。在使用curl有几个参数需要设置:超时时间,重试次数,设置两次重试的间隔时间,就像我们经常看抗日电视剧中情节,如果八路军子弹先被打完了,那就只有”我为鱼肉“了。超时时间设置过短,有可能该文件没有下载完全,就放弃了,直接下载next dbf 。如果想完全下载到所有文件,必须要观察,而且要观察经常最难下载的那几个dbf文件大概需要多长时间。最后进行预估设置一个值就ok了。</span></p>
<p><span style="color:#99cc00">2.采集到XXX.tar.gz包中dbf还是不全。</span></p>
<p><span style="color:#99cc00">超时时间设置比如30分钟/dbf,但是某种情况下,可能网络实在太差了,有些文件最终还是下载失败,那我们必须把下载失败的文件统一下载一个日志文件,这样维护人员容易知悉缺失文件,在适当的时候进行补才操作。</span></p>
<p><span style="color:#3366ff">curl -u OMCreader:FtAcUs </span><a href="ftp://192.168.113.210/BSC/BAM/dbf/BSCCELL.DBF" rel="noopener noreferrer" target="_blank"><span style="color:#3366ff">ftp://192.168.113.210/BSC/BAM/dbf/BSCCELL.DBF</span></a><span style="color:#3366ff">  -P - -o D:/data/concurrent/2729/BSCCELL.DBF   -m 600 -R -C -   --retry 5 --retry-delay 120 --retry-max-time 20 1&gt;&gt;192.168.113.210_err.log 2&gt;&gt;192.168.113.210_stdout.log<br> rem 指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。<br> if %errorlevel%&#61;&#61;0  (echo BSCCELL.DBF下载成功&gt;&gt;192.168.113.210_stdout.log)  else BSCCELL.DBF下载失败&gt;&gt;192.168.113.210_stdout.log</span></p>
<p>对以上curl语句解释:</p>
<p><span style="color:#3366ff">OMCreader:                                                               用户名</span></p>
<p><span style="color:#3366ff">FtAcUs :                                                                      密码<br> </span><a href="ftp://192.168.113.210/BSC/BAM/dbf/BSCCELL.DBF" rel="noopener noreferrer" target="_blank"><span style="color:#3366ff">ftp://192.168.113.210/BSC/BAM/dbf/BSCCELL.DBF</span></a><span style="color:#3366ff">  :下载文件ftp路径</span></p>
<p><span style="color:#3366ff">-P                                                                                :</span><span style="color:#3366ff">FTP协议的数据传输存在两种模式:主动模式和被动模式 ,此处为被动模式</span></p>
<p><span style="color:#3366ff">- -o                                                                              :输出路径</span></p>
<p><span style="color:#3366ff">-m :                                                                              表示允许的整个操作的最长耗时,单位为秒</span></p>
<p><span style="color:rgb(51,102,255)">-R                                                                                 :该选项指定下载字节的范围,常应用于分块下载文件                                         </span></p>
<p align="center"><span style="color:rgb(51,102,255)"><br> </span></p>
<p align="center"><span style="color:#3366ff">-C                                                                                 :   表示断点续传功能,与-o选项配合使,如果指定offset,则从offset的位置开始续 传。如果未指定offset,或者直接用&#34;-C -&#34;,则curl会自己分析该从什么位置开始续传。</span></p>
<p align="center"><span style="color:rgb(51,102,255)">--retry                                                                           : 当传输过程中出现错误,如超时、FTP 5xx返回码或者HTTP 5xx返回码,curl会进行按照设置进行重试,这几个选项都与重试有关</span></p>
<p><span style="color:rgb(51,102,255)"> --retry-delay &lt;seconds&gt;
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP