溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Linux中shell ftp命令如何根據(jù)文件日期下載文件

發(fā)布時(shí)間:2021-07-01 10:12:15 來(lái)源:億速云 閱讀:187 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹Linux中shell ftp命令如何根據(jù)文件日期下載文件,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

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

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

1、獲取文件的時(shí)間:

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

時(shí)間內(nèi)容:

Sep  8 16:03

2、時(shí)間格式轉(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里面模式變量用'  '括起來(lái),.*為任意字符,$表示以dat結(jié)尾。pattern的內(nèi)容根據(jù)需求自行設(shè)定

4、對(duì)文件時(shí)間進(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 ; }

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

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

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

5、ftp命令登錄遠(yuǎn)程主機(jī),并過(guò)濾得到要查詢(xún)的文件內(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)

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

6、下載文件

ftp_cmd mget $files

以上是“Linux中shell ftp命令如何根據(jù)文件日期下載文件”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI