Назад | Перейти на главную страницу

метка времени в сценарии кода оболочки

Я новичок в кодировании оболочки и, надеюсь, я попал в нужное место, чтобы задать этот вопрос. Я работаю со сценарием оболочки, который ежедневно собирает файлы и отправляет их через ftp. В имени файла указаны дата и время, а тип файлов - текст.(.txt). Файлы находятся в каталоге, в котором есть много других файлов, которые создаются ежедневно в разное время. Те файлы, которые я пытаюсь отправить, создаются в 08:00, но с другими минутами и секундами. например:

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, с любой минутой и секундой?

#!/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"