carimbo de data / hora no script de código shell

carimbo de data / hora no script de código shell

Sou novo em codificação de shell e espero estar no lugar certo para fazer essa pergunta. Estou trabalhando com um script de shell que coleta arquivos diários e os envia via ftp. No nome do arquivo há data e hora e o tipo de arquivo é texto (.txt). Os arquivos estão em um diretório no qual existem muitos outros arquivos que são criados diariamente em horários diferentes. Esses arquivos que estou tentando enviar são criados às 08h, mas com minutos e segundos diferentes. por exemplo:

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

O tempo é diferente no nome do arquivo mas todos eles têm 08 para hora e quero enviar todos os arquivos que tenham por exemplo a data de hoje e 08 como hora com qualquer minuto e segundo (não importa qual minuto e segundo). Aqui está o meu código:

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

Os arquivos estão no diretório e quando escrevo o carimbo de data/hora, por exemplo put team1_abc_part_$DATE_080031.txtno script acima, funciona bem e posso ver o arquivo enviado no servidor de destino.

O que devo escrever para a parte do tempo no nome do arquivo para que o script envie os arquivos que foram criados às 08 com qualquer minuto e segundo?

Responder1

#!/bin/ksh
#
#

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

Você deveria usar "mput" em vez de "put" https://stackoverflow.com/questions/6692799/how-to-ftp-multiple-file-using-shell-script

também pode ser útil:

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

informação relacionada