最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux shell ftp命令根據(jù)文件日期下載文件的方法

 更新時間:2017年09月15日 16:24:47   作者:單行道|  
最近做項目遇到這樣的需求要求ftp獲取遠(yuǎn)程數(shù)據(jù)的文件,根據(jù)文件的創(chuàng)建時間點(diǎn)下載文件。下面小編給大家分享知識點(diǎn)小結(jié),感興趣的朋友要求看看吧

需求:ftp獲取遠(yuǎn)程數(shù)據(jù)的文件,根據(jù)文件的創(chuàng)建時間點(diǎn)下載文件。 可以自行擴(kuò)展根據(jù)文件的大小等其他需求。

知識點(diǎn)總結(jié):

1、獲取文件的時間:

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

時間內(nèi)容:

Sep  8 16:03

2、時間格式轉(zhuǎn)換

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

轉(zhuǎn)換結(jié)果:

201709081603

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

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

注意awk里面模式變量用'  '括起來,.*為任意字符,$表示以dat結(jié)尾。pattern的內(nèi)容根據(jù)需求自行設(shè)定

4、對文件時間進(jìn)行比較

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

獲取文件的時間,對時間進(jìn)行轉(zhuǎn)換,然后對轉(zhuǎn)換后的時間與給定的$checktime進(jìn)行比較,如果比$checkime的時間大,則顯示文件名。

|getline 為執(zhí)行命令獲取命令執(zhí)行的結(jié)果。

以上就完成了對本地文件時間進(jìn)行比較的方法。接下來判斷遠(yuǎn)程主機(jī)的文件時間。

5、ftp命令登錄遠(yuǎn)程主機(jī),并過濾得到要查詢的文件內(nèi)容

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)

通過函數(shù)調(diào)用實現(xiàn)ftp到指定主機(jī),cd到指定目錄,通過awk獲取ls -lrt的結(jié)果,然后計算時間,把大于指定時間的文件名獲取到。

6、下載文件

ftp_cmd mget $files

總結(jié)

以上所述是小編給大家介紹的Linux shell ftp命令根據(jù)文件日期下載文件的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論

高安市| 松滋市| 波密县| 昌吉市| 罗江县| 神池县| 汉寿县| 财经| 襄樊市| 梁平县| 桓仁| 卢氏县| 特克斯县| 神农架林区| 鄂温| 天长市| 蒙山县| 循化| 靖江市| 义马市| 北宁市| 金门县| 镇远县| 华宁县| 察雅县| 永寿县| 乌兰察布市| 景宁| 清远市| 易门县| 阳春市| 新兴县| 赤壁市| 普陀区| 清流县| 集贤县| 张家口市| 闵行区| 玉溪市| 锡林浩特市| 凤阳县|