Die meisten Protokolle auf meinem Mac haben vor der Ausgabenachricht einen Zeitstempel wie diesen:
Nov 14 17:55:24 - SoftRAID Driver: SoftRAID driver loaded, version 5.8.1.
Ich führe eine ausführbare Datei in cron aus und möchte statt E-Mail alle Informationen in eine Protokolldatei ausgeben und jeder Zeile vor der Ausgabe einen Zeitstempel hinzufügen. Ich verwende >>
zum Anhängen an eine einzelne Datei.
Dies ist meine Crontab:
SHELL=/bin/bash
MAILTO=""
* 6-23 * * * /usr/local/bin/urlwatch >> /Users/john/cronjobs/urlwatch.log
Dies ist, was ich in urlwatch.log bekomme
UNCHANGED: (01)urlwatch update released (https://github.com/thp/urlwatch/releases/latest)
Wie kann ich erreichen, dass die Ausgabe folgendermaßen aussieht:
Nov 14 17:55:24 - UNCHANGED: (01)urlwatch update released (https://github.com/thp/urlwatch/releases/latest)
Ich habe viele verschiedene Vorschläge aus dem Internet ausprobiert und hatte kein Glück. Wenn das Speichern in einer Textdatei einfacher ist, funktioniert das auch.
Habe das hier probiert, was dem nahe kommt:
* 6-23 * * * (date && /usr/local/bin/urlwatch) >> /Users/john/cronjobs/urlwatch.log
Die Ausgabe in der Protokolldatei sieht folgendermaßen aus:
Sun Mar 15 13:35:00 CDT 2020
UNCHANGED: (03)RansomWhere? Objective-See (https://objective-see.com/products/ransomwhere.html)
UNCHANGED: (01)urlwatch update released (https://github.com/thp/urlwatch/releases/latest)
UNCHANGED: (02)urlwatch webpage (https://thp.io/2008/urlwatch/)
Antwort1
Wenn Sie über Folgendes verfügen (oder Folgendes erhalten können)selbstgebrauteszum Beispiel) diets
TichStamp-Dienstprogramm, dann sollten Sie in der Lage sein, etwas zu tun wie
/usr/local/bin/urlwatch | /path/to/ts >> /Users/john/cronjobs/urlwatch.log
( /path/to/ts
normalerweise /usr/bin/ts
auf Linux-Systemen; unter OSX kann es ein anderer Ort sein). Von man ts
:
DESCRIPTION ts adds a timestamp to the beginning of each line of input.
Wenn Sie ein anderes Zeitformat als das Standardformat angeben möchten, können Sie dies tun. Denken Sie jedoch daran, dass das %
Vorzeichen eine besondere Bedeutung hat cron
und maskiert werden muss. Siehe zum Beispiel
Möglicherweise stellen Sie fest, dass Zeilengruppen den gleichen Zeitstempel erhalten.Maikann daran liegen, dass das Programm, das sie erzeugt, seine Ausgabe puffert. Wenn eines der Dienstprogramme unbuffer
oder stdbuf
für Ihr System verfügbar ist,Maimöglich sein, die Zeilenpufferung wie hier beschrieben zu erzwingen: