Como adicionar os logs a um crontab com carimbo de data / hora


9

No crontab, agendei um script de backup diário. Agora, quando o cron executa o script, o status é registrado em um arquivo de log, como mostrado abaixo.

0 0 * * * /home/backup.sh > /home/groupz/db-backup/fbackup.log 2>&1  

Agora, quando o cron executa um script, o conteúdo do log é renovado toda vez. Portanto, quero que o conteúdo seja adicionado ao mesmo arquivo com carimbo de data e hora do tempo executado e abaixo do conteúdo de cada momento, juntamente com o conteúdo existente. Como posso fazer isso.


Não se esqueça de escapar do caractere "%" no seu crontab! +%d-%m-%y/%H:%M:%S+\%d-\%m-\%y/\%H:\%M:\%S
Tornaria-

Respostas:



5

Como obter o registro de data e hora em um arquivo

Para adicionar um carimbo de data / hora em um arquivo, use datever man datepara mais detalhes. Por exemplo, se você usar no terminal, terá saída como,

$ date +%d-%m-%y/%H:%M:%S
19-12-13/09:14:42

A saída está no formato dd-mm-yy/hour:min:sec

Se você deseja colocar o carimbo de data / hora em um arquivo, use

date +%d-%m-%y/%H:%M:%S > filename

Redirecionamento

Se você usar date +%d-%m-%y/%H:%M:%S > filename, a data será armazenada no arquivo, mas será substituída toda vez que você usar o comando. Para anexá-lo a um arquivo existente, use:

date +%d-%m-%y/%H:%M:%S >> filename

Ele adicionará a última saída de execução no final do seu arquivo existente.

O que você faz no seu caso

Você pode adicionar a seguinte linha no final do seu /home/backup.sh,

date +%d-%m-%y/%H:%M:%S

E use o seguinte no crontab,

0 0 * * * /home/backup.sh >> /home/groupz/db-backup/fbackup.log 2>&1

Eu acho que a modificação acima deve fazer o que você deseja.


Esta deve ser a resposta aceita
Dominik

1

(No Debian Jessie) Use o tscomando que faz parte do moreutilspacote. Por exemplo:

0 0 * * * /home/backup.sh | ts '[%Y-%m-%d %H:%M:%S]' > /home/groupz/db-backup/fbackup.log 2>&1  

Isso precederá o registro de data e hora de todas as linhas da saída e o salvará em seu log.


11
Não funcionou para mim, estou usando o Ubuntu 16.04. Eu instaleimoreutils
Hamman Samuel

0

Como você está executando um script de shell, por que não adicionar uma linha como,

some ./script    
echo `date -u `
some ./other/script

no seu script, ou seja, /home/backup.sh

Então

0 0 * * * /home/backup.sh >> /home/groupz/db-backup/fbackup.log 2>&1

anexará uma linha antes / depois do fbackup.log como qui Jun 14 11:10:22 UTC de 2018


Não é echo `date -u`o mesmo que data -u?
Stephen Rauch

O eco adiciona uma AIUI de quebra de linha.
Pbhj

-2

Você pode acrescentar algo a um arquivo usando duas dessas coisas '>'.

$ echo "test" >> test.txt
$ echo "test" >> test.txt

$ cat test.txt
test
test

2
E quanto ao carimbo de data
user3004356
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.