Invio dell'output cron a un file con un timestamp nel suo nome


38

Ho un crontab come questo in una configurazione LAMP:

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

Questo scrive l'output del file su cron.log . Tuttavia, quando viene eseguito nuovamente, sovrascrive tutto ciò che era precedentemente nel file.

Come posso ottenere cron per l' output in un file con un timestamp nel suo nome file?

Un nome file di esempio potrebbe essere simile al seguente: 2010-02-26-000000-cron.log

Non mi interessa davvero il formato, purché abbia un timestamp di qualche tipo.

Grazie in anticipo.


8
se non vuoi $HOME/cron.logessere sovrascritto, >>non usare>
Dave Cheney,

Risposte:


66

Provare:

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

Gioca con il formato della data, se lo desideri; assicurati di scappare %come \%, come sopra.


E lasciatemi generalmente suggerire un approccio ai nomi dei file come 0 0 * * * /some/path/to/a/file.php > $HOME/scriptname-data + \% Y \% m \% d \% H \% M \% S.log
Kristian,

Se ne hai bisogno un po 'più leggibile dall'uomo prova: date +\%Y\ \%m\ \%d\ \%H:\%M:\%S-cron.log
DevilCode

4
@DevilCode, sì, anche se gli spazi nei nomi dei file non sono molto convenzionali in Unix. Trattini o sottolineatura potrebbe essere una soluzione migliore: date +\%Y-\%m-\%d_\%H:\%M:\%S-cron.log.
fissione

1
Quei personaggi spaventosi della fuga mi catturano sempre. Grazie per il promemoria!
Tony-Caffe,

14

consiglio vivamente di salvare tutto nello stesso file, usando il timestamp, come spiegato qui .

rimuovere

2> & 1

ed eseguirlo attraverso lo script timestamping prima di salvarlo nel file di registro (come spiegato nel link sopra).



0

Ho modificato lo script in questo modo:

`/bin/date +\%Y\%m\%d`.log

-2

Ho risolto questo problema; basta aggiungere il percorso della data (/ bin / date) prima del comando date.


2
Si prega di aggiungere ulteriori informazioni ed esempio.
Danijel,

-2
@daily /some/path/to/a/file.php 2>&1 > $HOME/$(date +\%Y\%m\%d\%H\%M\%S)-cron.log

5
Ciò richiederebbe molte spiegazioni.
Sven
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.