如何在Linux中以24小时格式(从00:00:00到23:59:59)获取sar命令值?

时间:2015-01-22 15:36:37

标签: linux time

我想生成一个24小时格式cpu usage日志的文件(从00:00:0023:59:59)。我正在使用sar命令,但它以AM或PM格式提供时间,这不是必需的。

示例:

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

预期结果:

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

1 个答案:

答案 0 :(得分:9)

sar程序是所谓的区域设置感知程序。意味着它的输出格式由LC_*环境变量控制。变量LC_TIME负责输出时间数据。 (见man locale)。

您似乎正在使用LC_TIME设置为en_US的系统 - 使用12hours AM/PM format的区域设置(或LC_TIME保持为空,这将导致使用默认语言环境)。您需要使用使用24小时格式的区域设置。让我们说en_UK。您可以在命令行中指定它:

LC_TIME=en_UK.utf8 sar

<强>输出:

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
...

请注意!如果您的系统上无法使用区域设置en_UK.uft8,则需要使用以下命令生成它:

sudo locale-gen en_UK.utf8

或者您可以使用POSIXC

LC_TIME='POSIX' sar
LC_TIME='C' sar