统计io操作日志中的块大小、个数以及所占百分比的脚本

#!/bin/bash 

output_dir=/home/script/analyse_iosize

outputfile=/home/script/analyse_iosize/io_percent.txt



if [ ! -e $output_dir ];then

        mkdir -p $output_dir

else

        rm -rf $output_dir/*

fi



if [ $# -lt 1 ];then

        echo $0 "<file>"

        exit

fi



echo $0 $1 

filename=$1



function analyse_io()

{

        io_num=`cat $filename |grep LEN |wc -l`

        echo $io_num

        io_size=`cat $filename |grep LEN | awk '{a=index($0,"L");b=index($0," DEP");print substr($0,a+4,b-a-3)}'|sort -n`

        echo "$io_size">$output_dir/io_size.txt

        echo $output_dir/io_size.txt | awk 'NR==FNR{a[$1]++}NR!=FNR&&++b[$1]==1{print $1,$2,a[$1]}' $output_dir/io_size.txt $output_dir/io_size.txt > $output_dir/io_percent.txt

        a=`cat $output_dir/io_percent.txt | wc -l`

        for (( i = 0; i <= $a; i++ ))

        do

                j=`cat $output_dir/io_percent.txt |awk "NR==$i{print}"|awk '{print $2}'`

                var=`echo "scale=2;100*$j / $io_num"|bc`

                echo $var >> $output_dir/io_percent1.txt

        done

        sed -i '1d' $output_dir/io_percent1.txt

        paste -d "      " $output_dir/io_percent.txt $output_dir/io_percent1.txt >$output_dir/io_analyse.csv

#       for size in $io_size ;do 

#               echo "$size"

#               num=`cat $filename |grep LEN |grep $size | wc -l`

#               echo $num

#               percent=`echo $(echo "scale=2; 100*$num / $io_num"  | bc )`

#               echo "$percent" >>$output_dir/percent.txt 

#       done 

#       paste -d "," $output_dir/io_size.txt $output_dir/percent.txt >$output_dir/io_analyse.csv

}



analyse_io
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值