Linux: "time"-Ausgabe in Datei umleiten
Advertisement
Das time-Kommando in Linux ist sehr praktisch. Will man schauen, wie lange so ein Befehl oder eine Kette von Befehlen dauert, stellt man das Kommando vorne an und bekommt eine feine Zeitzusammenfassung im Stile von
real 0m29.881s
user 0m4.360s
sys 0m0.960s
Doch will man diese Ausgabe in eine Datei umleiten, wird es etwas kompliziert. Denn es gibt zwei Versionen von time. Die GNU Version von time hat für die Ausgabe in eine Datei den Parameter -o und für den Anhang an eine Datei zusätzlich noch -a. Diese Version wird normalerweise über den kompletten Pfad aufgerufen, warum erkläre ich gleich.
/usr/bin/time -a -o /tmp/logfile time ls -lA /etc/
Die Shell Version von time ist allerdings deutlich schmaler und weniger mächtig. Um diese Version dazu zu bewegen, in eine Datei zu schreiben, reicht es nicht, wie gewohnt den Output umzulenken.
time cp /etc/foo.bar /tmp/foo.bar.tmp >/tmp/foobar.log 2>&1
Die obige Zeile wird euch lediglich die ausgabe des cp-Befehls in die Datei schreiben. Um auch den time Befehl mitzuloggen, müsst ihr das komplette Konstrukt klammern.
(time cp /etc/foo.bar /tmp/foo.bar.tmp) >/tmp/foobar.log 2>&1
Damit klappt dann auch das Logging mit dem Shell time.