2015-01-22 4 views
7

Ich möchte eine Datei generieren, die cpu usage Protokolle im 24-Stunden-Format hat (von 00:00:00 bis 23:59:59). Ich benutze sar Befehl, aber es gibt Zeit im AM oder PM-Format, das nicht erforderlich ist.Wie erhält man den Befehlswert im 24-Stunden-Format (von 00:00:00 bis 23:59:59) in Linux?

Probe:

12:01:01 AM  all  1.33  0.00  1.06  0.24  0.00  97.37 
12:02:01 AM  all  1.30  0.00  1.02  0.04  0.00  97.64 

Erwartetes Ergebnis:

00:01:01 all  1.33  0.00  1.06  0.24  0.00  97.37 
00:02:01 all  1.30  0.00  1.02  0.04  0.00  97.64 

Antwort

8

Das sar Programm ist ein so genanntes locale aware-Programm. Das bedeutet, dass das Ausgabeformat von LC_* Umgebungsvariablen gesteuert wird. Die Variable LC_TIME ist für die Ausgabe von Zeitdaten zuständig. (siehe man locale).

Sieht aus wie Sie ein System verwenden, wo LC_TIME-en_US gesetzt - ein Gebietsschema mit den 12hours AM/PM format (oder LC_TIME leer gehalten wurde, die mit den Standard-Locale führen wird). Sie müssen eine Gebietsschemaeinstellung verwenden, die das 24-Stunden-Format verwendet. Sagen wir en_UK. Sie können es auf der Kommandozeile angeben:

LC_TIME=en_UK.utf8 sar 

Ausgang:

Linux 3.13.0-44-generic (desktop1) 01/22/15 _x86_64_ (4 CPU) 

00:00:01  CPU  %user  %nice %system %iowait %steal  %idle 
00:02:01  all  2,26  0,00  0,41  0,71  0,00  96,63 
00:04:01  all  2,68  0,00  0,72  0,46  0,00  96,13 
... 

Hinweis! Wenn das Gebietsschema en_UK.uft8 nicht auf Ihrem System verfügbar ist, müssen Sie es erzeugen mit:

sudo locale-gen en_UK.utf8 

oder können Sie verwenden POSIX oder C:

LC_TIME='POSIX' sar 
LC_TIME='C' sar 
Verwandte Themen