
Mit dem time(1)
Befehl können Sie die Zeit für jeden Befehl festlegen, indem Sie ihn als Argumente an übergeben time
.
stderr
Ich weiß, dass es möglich ist, und stdout
über in eine Datei umzuleiten 2>&1
, und es gibt auch tee(1)
, mit dem man seine Eingabe sowohl auf den Bildschirm als auch in eine Datei kopieren kann. Ich weiß jedoch nicht, wie man Zeitstempel zu Protokollen hinzufügt.
Gibt es ein Tool zum Umleiten stderr
und Zuweisen stdout
zu einer Datei UND zum Anhängen von Zeitstempeln zu Protokollierungszwecken?
Antwort1
Sie könnten es ts(1)
von moreutils verwenden.
ts
ausmehrutilsfügt jeder Eingabezeile einen Zeitstempel voran. Sie können es auch mit strftime formatieren.
$ echo 'foo bar baz' | ts
Mar 21 18:07:28 foo bar baz
$ echo 'blah blah blah' | ts '%F %T'
2012-03-21 18:07:30 blah blah blah
$
So installieren Sie es:
sudo apt-get install moreutils
Aus dieser Antwort kopierter Inhalt:https://stackoverflow.com/a/9813614/221689
Antwort2
Versuchen Sie es annotate-output
mit DebianEntwicklerskriptePaket. Es zeigt Zeitstempel an und schreibt "O" vor die Standardausgabe und "E" vor die Standardfehlerausgabe. Beispiel:
# run `ls` on one file that exists, and one that doesn't...
annotate-output ls /bin/bash /tmp/boosh
Ausgabe:
03:30:52 I: Started ls /bin/bash /tmp/boosh
03:30:52 O: /bin/bash
03:30:52 E: ls: cannot access '/tmp/boosh': No such file or directory
03:30:52 I: Finished with exitcode 2