sar -uの結果をエクセル貼り付け用に編集するスクリプト
Debian GNU Linux限定ですが、sar -u 1 nで取得したcpu使用率をxlsでグラフ化するときに使ったツールです。
タブ文字をセパレータにした形式でファイルに出力します。そのままxlsにはっつければグラフ化する作業がちょっとだけ楽です。
時間とスキルがなかったので汎用性が・・
#!/usr/bin/perl use strict; use warnings; my $readfile = $ARGV[0]; my $outfile = "$readfile.2xls"; my ($r, $o) = (); # filehandler unlink $outfile; open $r, $readfile; open $o, ">> $outfile"; my $flag = 0; while (<$r>) { my @a = split; if ( !$flag && defined $a[1] && $a[1] eq "CPU" ){ print $o "\t".(join "\t", @a[2,3,4,5,6])."\n"; $flag = 1; } elsif ( defined $a[0] && $a[0] =~ /(\d{2}.*?){3}/ && defined $a[1] && $a[1] eq "all" ) { print $o (join "\t", @a[0,2,3,4,5,6])."\n"; } } close $r; close $o;
サーバの言語設定が日本語の場合は、elsif条件式を以下のようにしてもよいかと思います。
もし日本語出力なら・・ } elsif ( defined $a[0] && $a[0] =~ s/(\d{2})時(\d{2})分(\d{2})秒/$1:$2:$3/g && defined $a[1] && $a[1] eq "all" ) {