时间:2021-05-22
需求: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_ipuser $get_user $get_pwdbinarycd ${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命令根据文件日期下载文件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
python从ftp上下载文件的方法:首先导入ftp模块;然后使用【chdir】命令切换工作路径;再使用“self.ftp.nlst()”命令获取目录下的文件;
LinuxftpFTP是ARPANet的标准文件传输协议,该网络就是现今Internet的前身。通常我们使用ftp命令,主要是上传和下载文件,ftp登陆的用户一
本文实例讲述了python实现支持目录FTP上传下载文件的方法。分享给大家供大家参考。具体如下:该程序支持ftp上传下载文件和目录、适用于windows和lin
两个Linux命令wget和exec一个linux命令:wgetftp访问命令来下载文件的三种方式1)wgetftp://userName:password@1
Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块。当然你也可以利用ftplib从ftp站点下载文件