shell程式碼腳本中的時間戳

shell程式碼腳本中的時間戳

我是 shell 編碼的新手,希望我是在正確的地方問這個問題。我正在使用一個 shell 腳本來收集日常文件並透過 ftp 發送它們。檔案名稱中包含日期和時間,文件類型為文字(.txt)。文件位於一個目錄中,其中有許多每天在不同時間創建的其他文件。我嘗試發送的那些文件是在上午 8 點創建的,但分鐘和秒不同。例如:

team1_mnpg_ef_part_2018-02-26_080005.txt
team1_abc_part_2018-02-26_080031.txt

文件名中的時間不同,但它們都以 08 表示小時,我想發送所有具有例如今天日期和 08 作為小時的文件,無論分鐘和秒(無論哪一分鐘和秒)。這是我的程式碼:

#!/bin/ksh
#
#

DATE=`date "+%Y-%m-%d"`

HOST='abcd.dmn.com'
USER='*****'
PASSWD='******'
LOCALPATH='/opt/abc/Output'
LOGPATH='/opt/abc/logs'


ftp -n -v $HOST <<END_SCRIPT>>$LOGPATH/ftp_abc_$DATE_log.txt
quote USER $USER
quote PASS $PASSWD
lcd $LOCALPATH
put team1_abc_part_$DATE_(I do not know what should I write here).txt
put team1_mnpg_ef_part_$DATE_.txt
put team1_fdop_part_$DATE_.txt

quit
END_SCRIPT
exit 0

文件位於目錄中,當我寫入時間戳記時,例如put team1_abc_part_$DATE_080031.txt在上面的腳本中,它工作正常,我可以在目標伺服器上看到發送的文件。

我應該在文件名中的時間部分寫什麼,以便腳本發送在 08 處創建的文件(無論分鐘和秒)?

答案1

#!/bin/ksh
#
#

DATE=`date "+%Y-%m-%d"`
HOUR=`date "+%H"`
.....
mput team1_abc_part_$DATE_$HOUR*txt
.......

您應該使用“mput”而不是“put” https://stackoverflow.com/questions/6692799/how-to-ftp-multiple-file-using-shell-script

也可能有用:

# get timestamp
date +%s
# from timestamp to Date
date "+%Y-%m-%d" -d @1519661267
# date 2 minuts ago
date "+%Y-%m-%d" -d "-2 min"

相關內容