Como passar na criação do arquivo de log para passar para o script para anexar o arquivo

0

Eu tenho vários cron jobs que corro para fazer backup do dbs:

0 8 * * * BACKUP=DEV DB=01 /usr/local/bin/backup.sh > /var/log/backup-db01-'date "+\%m\%d\%y"'.log 2>&1||/usr/local/bin/create-ticket.sh

0 16 * * * BACKUP=DEV DB=02 /usr/local/bin/backup.sh > /var/log/backup-db02-'date "+\%m\%d\%y"'.log 2>&1||/usr/local/bin/create-ticket.sh

No script, estou tentando criar um ticket do JIRA em caso de falha e anexar os logs para o backup:

script create-ticket.sh :

#create Ticket for failed backup#
JIRA='/opt/atlassian-cli/jira.sh --server https://blahblah --user admin --password blahblah --action createIssue --project "DEV" --type "Incident" --summary "Failed backup on $BACKUP $DB" --components "blah" --priority "Major"| awk '{print $2}''

###Atttach logs:###
/opt/atlassian-cli/jira.sh --server https://blahblah --user admin --password blahblah --action addAttachment --issue "${JIRA}" --file "?????"

Eu preciso saber como passar os nomes de arquivos diferentes para cada vez que o cron é executado na seção { --file "???" } ... o nome do arquivo muda diariamente e eu preciso do script para pegar o arquivo recém-criado para cada DB em cada dia falha.

    
por calicowboy23 10.08.2018 / 19:10

2 respostas

0

Eu acho que você pode introduzir o parâmetro de nome de arquivo de log a ser usado tanto para o redirecionamento quanto para chamar o create-ticket.sh

0 8 * * * BACKUP=DEV DB=01 LOG=/var/log/backup-db01-$(date "+%m%d%y").log /usr/local/bin/backup.sh > $LOG 2>&1 || /usr/local/bin/create-ticket.sh $LOG

então create-ticked.sh deve estar esperando esse parâmetro e você pode usá-lo dentro como

 ... --file "$1" ...

Você pode não querer usar sinal% de escape - $ (data "+% m% d% y") - parte resultará em uma string como 021318 uma vez, então você garantiu ficar com o mesmo nome.

    
por 10.08.2018 / 19:37
0

Crie um script wrapper para limpar seu crontab;

0 8 * * * /usr/local/bin/backupOrTicket.sh 01

e coloque isso nele;

DB=$1
BACKUP=DEV
FILE="/var/log/backup-$DB-$(date +%m%d%y).log"
/usr/local/bin/backup.sh > "$FILE" 2>&1 \
|| /usr/local/bin/create-ticket.sh "$FILE"

Usando --file "$1" em create-ticket.sh. Você pode querer remover a variável BACKUP se não for realmente usada. Além disso, você deve usar date --iso-8601=s para que seus arquivos de log sejam classificados corretamente. (O uso de qualquer formato de data diferente do maior numérico para o menor é um anti-padrão )

    
por 10.08.2018 / 19:42