Linux shell ftp命令根据文件日期下载文件的方法

 更新时间:2017年09月15日 16:24:47   作者:单行道|  
最近做项目遇到这样的需求要求ftp获取远程数据的文件,根据文件的创建时间点下载文件。下面小编给大家分享知识点小结,感兴趣的朋友要求看看吧

需求:ftp获取远程数据的文件,根据文件的创建时间点下载文件。 可以自行扩展根据文件的大小等其他需求。

知识点总结:

1、获取文件的时间:

ls -lrt|awk '{print $6" "$7" "$8}'

时间内容:

Sep  8 16:03

2、时间格式转换

date -d "Sep 8 16:03" +%Y%m%d%H%M

转换结果:

201709081603

3、指定文件名,正则匹配

pattern="${month}.*.dat$"
ls -lrt |awk '$9 ~ /'$pattern'/ {print $6" "$7" "$8}'

注意awk里面模式变量用'  '括起来,.*为任意字符,$表示以dat结尾。pattern的内容根据需求自行设定

4、对文件时间进行比较

ls -lrt |awk '$9 ~ /'$pattern'/ {\
     ctime="date -d \""$6" "$7" "$8"\" +%Y%m%d%H%M"; \
     ctime|getline filetime; if( filetime > '$checktime' ) print $9 ; }

获取文件的时间,对时间进行转换,然后对转换后的时间与给定的$checktime进行比较,如果比$checkime的时间大,则显示文件名。

|getline 为执行命令获取命令执行的结果。

以上就完成了对本地文件时间进行比较的方法。接下来判断远程主机的文件时间。

5、ftp命令登录远程主机,并过滤得到要查询的文件内容

ftp_cmd(){
ftp -i -n <<!
open $ftp_ip
user $get_user $get_pwd
binary
cd ${get_dir}
lcd ${local_dir}
$*
bye
!
}
pattern="${month}.*.dat$"
files=$(ftp_cmd ls -lrt |awk '$9 ~ /'$pattern'/ {\ 
ctime="date -d \""$6" "$7" "$8"\" +%Y%m%d%H%M"; \ 
ctime|getline filetime; if( filetime > '$checktime' ) print $9 ; }'|xargs)

通过函数调用实现ftp到指定主机,cd到指定目录,通过awk获取ls -lrt的结果,然后计算时间,把大于指定时间的文件名获取到。

6、下载文件

ftp_cmd mget $files

总结

以上所述是小编给大家介绍的Linux shell ftp命令根据文件日期下载文件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Shell脚本调试 -n -v -x -c的具体用法

    Shell脚本调试 -n -v -x -c的具体用法

    本文主要介绍了Shell脚本调试 -n -v -x -c的具体用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • shell脚本编程Makefile的使用

    shell脚本编程Makefile的使用

    本文主要介绍了shell脚本编程Makefile的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • linux创建用户useradd命令代码示例

    linux创建用户useradd命令代码示例

    本文通过代码示例给大家介绍了adduser与useradd命令二者的关系 以及使用useradd命令添加用户的方法,需要的朋友参考下吧
    2017-08-08
  • 非常好的12道shell命令经典面试问题

    非常好的12道shell命令经典面试问题

    shell面试题总结了一些,让我们一起看一下吧,非常好的12道shell命令经典面试问题,需要的朋友可以参考下
    2018-02-02
  • Linux 中常用的Rpm命令实例详解

    Linux 中常用的Rpm命令实例详解

    RPM是RedhatPackageManager的缩写,是由RedHat公司开发的软件包安装和管理程序,同Windows平台上的Uninstaller比较类似。下面通过本文给大家分享Linux 中常用的Rpm命令实例详解,一起看看吧
    2017-09-09
  • linux tar命令简介

    linux tar命令简介

    tar命令用来打包,解包和压缩。这篇文章主要介绍了linux tar命令简介,需要的朋友可以参考下
    2017-10-10
  • Linux Shell简介

    Linux Shell简介

    本文编译整理时对相关章节做了相应的删改处理,去掉了针对Mandrake Linux的部分内容
    2013-06-06
  • Linux Shell脚本编程初体验

    Linux Shell脚本编程初体验

    脚本语言是与计算机交流的另外一种途径。使用图形化窗口界面用户可以移动鼠标并点击各种对象,比如按钮、列表、选框等等。但这种方式在每次用户想要计算机/服务器完成相同任务时却是十分不方便。要想让所有这些事情变得简单并且自动化,我们可以使用shell脚本
    2015-08-08
  • 使用Bash Shell对目录中的文件实现递归式拷贝

    使用Bash Shell对目录中的文件实现递归式拷贝

    这篇文章主要介绍了使用Bash Shell对目录中的文件实现递归式拷贝,适用于Ubuntu等Debian系的Linux系统,需要的朋友可以参考下
    2015-07-07
  • Shell脚本学习指南之查找与替换介绍

    Shell脚本学习指南之查找与替换介绍

    Shell脚本学习指南之查找与替换介绍,需要的朋友可以参考下
    2013-02-02

最新评论