Linux平台自动下载FTP服务器数据的实现

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:potato_212
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:针对Linux环境下自动下载FTP服务器数据文件需要,提出用shell脚本程序实现数据自动下载功能。该方法将Linux系统的crontab命令、date命令、shell脚本和wget软件有机结合实现FTP数据的自动下载。Linux系统能定时自动运行shell脚本调用wget软件自动下载数据文件。在Linux系统下灵活组合各种命令能够低成本实现复杂功能。
  关键词:Linux;crontab;shell;wget;定时;下载
  中图分类号:TP316 文献标识码:A 文章编号:1009-3044(2016)30-0248-01
  The Method to Download Files Automatically Form FTP Website on Linux System
  NIE Lin-bo
  (The Ocean Meteorological and Hydrological Center of South China Sea Fleet, Zhanjiang 524001, China)
  Abstract: to fulfill the need of download data file from FTP server automatically, the method was proposed which can download file at regular time everyday using shell scripts. The method combined crontab, date, shell scripts and wget command to realize the task of downloading file automatically. Linux can run shell scripts to download file on FTP server at regular time. The complicated function can be realized by combining a sort of commands organically.
  Key words: Linux; crontab; shell; wget; timing; download
  1 需求的提出
  在工作中遇到這样的情况,需要从FTP网站自动下载数据文件。这些文件每天会自动产生并保存在按日期建立的文件夹中,文件名包含有日期等信息。每天生成的文件数以百计。如果手工下载,效率很低。考虑到这些特点,必须采用软件自动下载。
  2 实现的方法
  在Linux下有个软件wget可以实现从网站下载文件。要实现自动下载,最经济的方法是使用crontab命令定时执行wget命令即可无需人工干预自动运行。要使wget能根据日期变化自动改变下载目录和文件名,就需要编写shell脚本来实现。Shell脚本自动根据当前时间产生需要的日期和时间参数,wget利用这些参数下载相应的数据文件。
  3 关键技术
  3.1 Wget
  wget是一个下载文件的软件,它以命令行方式执行下载任务。wget工具体积小但功能完善。wget有以下功能和特点:
  1)支持断点下传功能。当网络中断恢复后,wget可以继续之前的下载任务,无需重新下载。
  2)支持FTP和HTTP下载方式。
  3)支持代理服务器。
  4)设置方便,只要指定参数,即完成设置,适合程序化运行。
  5)软件免费。
  wget基本的语法是:wget [参数列表] URL
  使用如下命令行下载FTP服务器数据:
  wget -O fileN--ftp-user=USERNAME --ftp-password=PASSWORD url
  FTP服务器用户名和密码分别为USERNAME和PASSWORD。数据文件由url指定,参数O指定数据文件以fileN为文件名保存。
  3.2 crond
  crond是Linux下用来周期性地执行某种任务或等待处理某些事件的一个守护进程, crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。使用 crontab –e命令来定制自己的计划任务,用crontab –l命令显示计划任务列表。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。crontab文件中,每一行代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
  minute hour day month week command
  其中:
  minute: 表示分钟,可以是从0到59之间的任何整数。hour:表示小时,可以是从0到23之间的任何整数。day:表示日期,可以是从1到31之间的任何整数。month:表示月份,可以是从1到12之间的任何整数。week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
  3.3 shell
  是用户和Linux内核之间的接口程序。shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。Shell也是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。高级语言中常见的判断、选择、循环结构,shell也具备。Shell脚本将一系列的Linux命令组合起来即可实现通常需要用高级语言编程实现的各种复杂任务。
  3.4 date命令
  Linux下的date命令比windows下的date命令功能更强大。通过下面的shell语句可以对当前时间进行计算,得到指定日期和时间字符串,从而实现数据文件路径和名称的自动生成。
  stringyear=`date --date="1 days ago" %Y`
  stringmonth=`date --date="1 days ago" %m`
  stringday=`date --date="1 days ago" %d`
  4 结束语
  该方法将Linux系统的crontab命令、date命令、shell脚本和wget软件有机结合实现FTP数据的自动下载。对于大量数据文件下载任务,运用这种方法可以实现数据自动高效下载。在Linux系统下灵活组合各种命令能够低成本实现复杂功能。这种下载技术存在不足,在于wget只能处理利用用户名/密码方式限制访问的网站,对于需要证书做认证的网站,就只能利用其他下载工具。
  参考文献:
  [1] 门佳. Linux Shell脚本攻略[M]. 2版. 北京: 人民邮电出版社, 2014.
  [2] 王军. Linux系统命令及Shell脚本实践指南[M]. 北京: 机械工业出版社, 2013.
  [3] 赵哲. 用Shell函数实现定时关机[J]. 科技情报开发与经济, 2008(28).
  [4] 韩璐. 在UNIX系统下用shell编程实现对文件的操作[J]. 中国科技信息, 2006(13).
其他文献
摘要:本文基于0.162um CMOS高压工艺,设计了一款通过检测电源电压,自动选择倍压系数的电荷泵电路。文中详细介绍了电源检测,模式选择原理以及泵电路的1.5倍/1.67倍/2倍/2.5倍/3倍五种倍压模式。泵电路采用了双边对称结构,有效降低了输出纹波。通过仿真,验证了电源不同电压域,倍压系数及输出电压的正确性;在25KHz工作频率,负载20mA时,基于双边对称工作的电源4.5V/1.5倍,3.
良好的课外体育组织与管理对于校园体育活动的发展,活跃校园气氛,调动学生体育锻炼的积极性,完善学生的健康人格、塑造合格全面的人才有着极其重要的意义.基于此,从课外体育
运用数理统计的方法,对国内外18名优秀男子撑竿跳高运动员比赛中的有关技术数据进行统计处理。建立了男子撑竿跳高的主要技术参数评价与成绩预测的模型。
应用集落刺激因子后急非淋白血病病情加重三例报告周建平,侯健,黄隆安1临床资料例1,男,68岁。经骨穿示急性单核细胞性白血病(AML)M56型,原单+幼单0.079,第3次入院化疗。入院查外周血WBC1.4×109/L,N0.38,予DAH方案化疗后
摘要:近年来信息技术取得了快速发展,在诸多行业都能够看到信息系统被广泛应用。在企业信息化建设领域,信息系统的重要性越来越高,对于某些企业来说,信息系统甚至是该企业核心竞争力的体现。不过由于当前企业内外要素环境的不断改变,一些信息系统所涉及项目往往还有不同的风险,其中涉及信息系统的需求变更就是该系统开发和使用过程中所面临的重要风险。甚至会对整个系统开发能否取得成功都会产生极为重要的影响。就我公司近十
摘要:Oracle数据库作为当前被广泛应用的信息数据管理系统,随着互联网以及信息技术的快速发展被广泛应用,对保障信息安全以及维护数据稳定效用十分显著。但在数据库长期的应用过程中,其性能的调整与优化至关重要。此次针对Oracle数据库应用过程中存在的性能不稳定因素进行具体调节,探索性能调整与优化的根本方式方法。  关键词:Oracle数据库;性能调整;优化方法  中图分类号:TP311 文献标识码:
<正>素质教育是一种科学教育理论体系。作为现代教育思想的载体,无论是发达国家或是发展中国家,都把学生素质的全面提高作为培养目标,素质教育逐渐成为世界性教育改革的主旋
综观历年世界体操大赛中的夺冠者,除了完成动作的质量和稳定性属上乘外,都有其创新动作.创新是运动员脱颖而出的"跳板",运动员有创新动作,就易取得优异成绩.创新是世界体操发
期刊
【正】体育理论教学。是整个普通高校体育教学工作中不可缺少的一部分。在当今改革教学大纲,编发新的理论课本,增加必要的理论课教学时数的同时,本文就如何提高体育理沦课的
通过分析现阶段计算机组成原理实验教学存在的不足,提出了重点从实验预习考核和实验教学过程监控出发对该课程进行实验教学改革的基本思路。实践证明通过新教学举措,计算机组成