Enviando a saída do cron para um arquivo com um timestamp em seu nome

34

Eu tenho um crontab assim em uma configuração LAMP:

0 0 * * * /some/path/to/a/file.php > $HOME/cron.log 2>&1

Isto grava a saída do arquivo para cron.log . No entanto, quando é executado novamente, substitui o que estava anteriormente no arquivo.

Como posso fazer o cron na saída para um arquivo com um registro de data e hora em seu nome de arquivo?

Um nome de arquivo de exemplo seria algo assim: 2010-02-26-000000-cron.log

Eu realmente não me importo com o formato, desde que tenha algum registro de data e hora.

Obrigado antecipadamente.

    
por Philip Morton 27.02.2010 / 01:33

5 respostas

57

Tente:

0 0 * * * /some/path/to/a/file.php > $HOME/'date +\%Y\%m\%d\%H\%M\%S'-cron.log 2>&1

Brinque com o formato de data, se quiser; apenas certifique-se de escapar de % como \% , como acima.

    
por 27.02.2010 / 01:59
12

Eu recomendo que você salve tudo no mesmo arquivo, usando timestamp, como explicado aqui .

remover

2>&1

e execute-o através do script de registro de data e hora antes de salvá-lo no arquivo de log (como explicado no link acima).

    
por 23.10.2013 / 03:19
6

Você também pode anexar sua saída ao arquivo de log da seguinte forma:

0 0 * * * /some/path/to/a/file.php >> $HOME/cron.log 2>&1
    
por 27.02.2010 / 02:36
0

Eu modifiquei o script assim:

'/bin/date +\%Y\%m\%d'.log
    
por 25.07.2018 / 00:15
-2

Eu resolvi esse problema; basta adicionar o caminho da data (/ bin / date) antes do comando date.

    
por 17.03.2014 / 09:06