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"

相关内容