インフラ系SEの技術メモ

雑なエンジニアが低信頼性のメモを書いています。参考程度にとどめてください。

(Linux)gawkが入っていない状況でvmstatの時刻データを出したい

gawkがないとエラーになる

こんな感じ。

$ vmstat 1 | awk '{print strftime("%/%m%d %H:%M:%S"), $0}'
awk: line 2: function strftime never defined

内部的にはgawkがいるんだとか。

$ which gawk
$ which awk
/usr/bin/awk

Perlスクリプトがいい

STDOUTが入るとその後ろに時刻データを入れるスクリプト

#!/usr/bin/perl
use strict;
use warnings;
use IO::Handle;
STDOUT->autoflush;
while (defined(my $line = <>)) {
  my ($s, $m, $h,$dd ,$mm ,$yy ,$ww) = localtime();
    printf STDOUT '%04d/%02d/%02d %02d:%02d:%02d %s', $yy+1900, $mm, $dd, $h, $m, $s, $line;
    }

これを単体で動かすとキーボードを押下してEnterで時刻が付与されます。

./test.pl
a
20XX/10/24 15:04:36 a
b
20XX/10/24 15:04:38 b
^C

というわけでこれで時刻データ付きの基盤データをゲット。便利。

$ vmstat 1 | ./test.pl