#!/usr/bin/perl use strict; my $targetdisk = "sda"; my $runs = 10; my @data; foreach ( 0 .. $runs ) { my ( $time, $disk, $rrqm_s, $wrqm_s, $r_s, $w_s, $rsec_s, $wsec_s, $avgrq_sz, $avgqu_sz, $await, $svctm, $util ); open( IOSTAT, "iostat -d -t -x /dev/$targetdisk |" ) || die; while () { if (/Time:(.*)/) { $time = "$1"; } elsif (/^$targetdisk/) { ( $disk, $rrqm_s, $wrqm_s, $r_s, $w_s, $rsec_s, $wsec_s, $avgrq_sz, $avgqu_sz, $await, $svctm, $util ) = split( /\s+/, $_ ); } } close(IOSTAT); # Pack the data push( @data, [ $time, $disk, $rrqm_s, $wrqm_s, $r_s, $w_s, $rsec_s, $wsec_s, $avgrq_sz, $avgqu_sz, $await, $svctm, $util ] ); } print "Processing Data\n"; foreach my $data (@data) { my @fields = @$data; my $time = shift @fields; print "$time: ", join( ",", @fields ), "\n"; }