Frage Senden der Cron-Ausgabe an eine Datei mit einem Zeitstempel im Namen


Ich habe eine crontab wie folgt in einem LAMP Setup:

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

Dies schreibt die Ausgabe der Datei nach cron.log. Wenn es jedoch erneut ausgeführt wird, überschreibt es, was zuvor in der Datei enthalten war.

Wie kann ich Cron bekommen? Ausgabe in eine Datei mit einem Zeitstempel in seinem Dateinamen?

Ein Beispieldateiname wäre etwa so: 2010-02-26-000000-cron.log

Das Format interessiert mich nicht wirklich, solange es einen Zeitstempel hat.

Danke im Voraus.


34
2018-02-27 00:33


Ursprung


wenn du nicht willst $HOME/cron.log überschrieben werden, verwenden >> nicht > - Dave Cheney


Antworten:


Versuchen:

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

Spielen Sie mit dem Datumsformat herum, wenn Sie möchten; nur sicher sein, jeder zu entkommen % mögen \%, wie oben.


57
2018-02-27 00:59



Und lassen Sie mich generell einen Ansatz für Dateinamen wie vorschlagen 0 0 * * * /some/path/to/a/file.php > $HOME/scriptname-Datum + \% Y \% m \% d \% H \% M \% S.log - Kristian
Wenn Sie es brauchen, ein wenig mehr lesenswert versuchen: date +\%Y\ \%m\ \%d\ \%H:\%M:\%S-cron.log - DevilCode
@DevilCode, ja, obwohl Leerzeichen in Dateinamen in Unix nicht sehr konventionell sind. Bindestriche oder Unterstriche könnten eine bessere Option sein: date +\%Y-\%m-\%d_\%H:\%M:\%S-cron.log. - fission


Ich würde empfehlen, dass Sie alles in der gleichen Datei speichern, mit Zeitstempel, als hier erklärt.

Löschen

2> & 1

und führen Sie es durch das Zeitstempelskript aus, bevor Sie es in der Protokolldatei speichern (wie in obigem Link erklärt).


12
2017-10-23 01:19





Sie können Ihre Ausgabe auch an die Protokolldatei anhängen, indem Sie Folgendes tun:

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

6
2018-02-27 01:36





Ich habe das Skript folgendermaßen modifiziert:

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

0
2017-07-24 22:15





Ich habe dieses Problem gelöst; Fügen Sie einfach den Datumspfad (/ bin / date) vor dem Datum hinzu.


-2
2018-03-17 08:06



Bitte fügen Sie weitere Informationen und Beispiele hinzu. - Danijel