Shellはwebログから平均接続時間を計算する機能です。
今日ネットでウェブ接続の平均時間を求めるshell命令を見ました。自分のマシンで試してみましたが、使えないことに気づきました。awk:fatal:division by zeratemptedという誤りがありました。毛が生えたら自分でshell命令を変えました。
元shellスクリプトの例:
元shellスクリプトの例:
cat access.log|grep "connect cbp" |awk 'BEGIN{sum=0;count=0;}{sum+=$10;count++;}END{printf("sum=%d,count=%d,avg=%f
",sum,count, sum/count)}'
修正後のshell:
cat access.log |awk '{sum+=$10;count+=1} END{print "SUM:"sum"
AVG:"sum/count"
COUNT:"count}'
実行結果:
SUM:33403166
AVG:7951.24
COUNT:4201
もちろんそのまま元のものに変えてもいいです。
cat access.log |awk 'BEGIN{sum=0;count=0;}{sum+=$10;count++;}END{printf("sum=%d,count=%d,avg=%f
",sum,count, sum/count)}'
実行結果:
sum=33403166,count=4201,avg=7951.241609
元のshellのシナリオの求めた結果がもっと正確に見えることができます。必要なものは自分で持って行ってみてもいいです。