Linux shell ftp命令下载文件 根据文件日期美高梅手

作者:电脑系统
  • if的多规格决断 -o

    if [ "$pro"x == "$province"x -o "$pro"x == ""x ];then

    ...
    

    fi

 

6、下载文件

1、获取文件的年华:

ftp_cmd mget $files

|getline 为实践命令获取命令实施的结果。

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)

  倘使不加x,当$pro为空的时候,会报非凡

供给:ftp获取远程数据的文本,依据文件的创始时间点下载文件。 能够活动扩充根据文件的深浅等此外须求。

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 ; }
date -d "${time}"   %Y%m%d%H%M
if [ $? -ne 0 ]; then
    echo "time invalidate";
    exit 2
fi

拆解分析时间,如若失败则脱离。

 

201709081603

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

注意awk里面方式变量用'  '括起来,.*为擅自字符,$表示以dat结尾。pattern的开始和结果据书上说须要自动设定

拿到文件的小时,对时间开展调换,然后对转移后的时日与给定的$checktime进行比较,假若比$checkime的光阴大,则展现文件名。

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

经常性时间点消息为参数,所以要对时间点新闻实行校验。这里提供二个大致的校验方法:

改变结果:

瞩目:假若同盟的文件量过大,接纳这种艺术下载文件有bug, 能够设想分批下载,也等于叁次下载多少个文件。

知识点总括:

Sep  8 16:03

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

7、时间对古籍标点改过验

  • 自加

    num=$[ $num 1 ];

  • 为空剖断

    if [ "$pro"x == ""x ]; then   ... fi

 

时刻内容:

3、钦赐文件名,正则相配

只顾:时间精度到分的 值的格式为:'20170910 1600'

讲讲别的shell命令注意的地点:

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

上述就完事了对该和姑件时间开展相比较的主意。接下来决断远程主机的文本时间。

2、时间格式调换

 

因而函数调用达成ftp到钦命主机,cd到钦定目录,通过awk获取ls -lrt的结果,然后总括时间,把超过指依期间的文书名取获得。

本文由美高梅4858官方网站发布,转载请注明来源

关键词: