首页 > 其他 > 详细

浅谈FTP 与 LFTP 的 nlist 和 mget 功能

时间:2015-05-29 17:18:26      阅读:396      评论:0      收藏:0      [点我收藏+]

最近因为业务需要,与第三方数据厂商做数据对接,接口方式协定为 FTP传输 ,说说我过程中的dan teng 经历。

开始准备用 lftp mirror 的方式镜像的方式同步数据,由于对方提供的日志文件超级大(一个小时100G),且对方接口本地保存了2天的数据,mirror 镜像太牺牲本地磁盘空间了(PS:mirror 貌似可以设置参数-x RX 忽略部分文件,由于项目时间比较近,楼主没有仔细研究,此楼不做详谈),后面果断采用mget 的方式按小时文件。

第一阶段:采用 ftp 的 nlist 和 mget 同步数据

ftp -n -i<<EOF

open ftp-ip

user username passwd

bin
nlist *${TIMESTAMP}* file_${TIMESTAMP}.log
mget *$TIMESTAMP*
bye
EOF

循环处理文件时,总会提示部分文件不存在,查看日志发现 nlist 获得的文件列表数量确实大于真正mget 下来的文件。开始一直以为是接口那边在mget 文件时已经删除了部分文件,此过程dan teng 了很久,最后发现 ftp 的mget 在同步大量文件时(600个文件以上)会有遗漏文件的bug,少量文件不会出现这种情况。

第二阶段 :后面改用lftp 的mget ,问题解决,部分代码如下

lftp user:passwd@ip <<EOF

mget *$TIMESTAMP*
bye
EOF

注:lftp 没有nlist 函数,需要的话可以 mget 后 本地 find 文件列表,效果一样

浅谈FTP 与 LFTP 的 nlist 和 mget 功能

原文:http://www.cnblogs.com/yi-0816/p/4538517.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!