vmstatに日時を付ける
とあるサーバにメモリを追加したので、しばらく様子見ということで
vmstatやらTOPやらを定期的に流しています。
vmstat 1 とかすれば1秒おきに出力してくれるわけですが
でも、
# vmstat 1 procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 3 4 12756 9248 65848 14686496 0 0 277 56 92 41 26 4 65 5 3 1 12756 8928 65848 14686224 0 0 13380 28 3652 6798 37 3 29 31 2 4 12756 14608 65860 14680228 0 0 8268 168 2921 8906 37 5 28 31
てな感じで「いつのvmstatよ?」になったりします・・・
apacheのログの様に日時がつけれないかなぁ、、と
google[vmstat 時刻]
したところ、同じ悩みを抱えている方がやはりおられまして
さくっとperlのスクリプト作っちゃってる(w
早速使わせていただきました。
/usr/local/bin/puttime.pl
においてパーミッションを換えておけばどこでも使えるでしょう。
コードは日付も出るように変えさせていただいて・・
#!/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; }
(20160530: use IO::Handle; STDOUT->autoflush; printf STDOUT 〜を追加しました)
実行実行〜
# vmstat 1 | puttime.pl 2008/02/26 11:48:06 procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- 2008/02/26 11:48:06 r b swpd free buff cache si so bi bo in cs us sy id wa 2008/02/26 11:48:06 1 0 12756 20752 52264 15056768 0 0 283 56 93 45 26 4 65 6 2008/02/26 11:48:07 4 0 12756 20240 52264 15056768 0 0 16 288 1257 26644 38 10 51 1 2008/02/26 11:48:08 1 1 12756 12432 52272 15064512 0 0 7736 24 1843 19877 31 4 45 20 2008/02/26 11:48:09 2 3 12756 8568 52276 15068316 0 0 8496 24 2862 17824 48 8 18 26 2008/02/26 11:48:10 2 2 12756 10816 52284 15065792 0 0 21972 148 3947 15308 19 5 47 29
ぁあ、素敵すぎる!
ありがとうございます!