0

現在、単純な tail コマンドを使用して、nginx のアクセス ログを追跡しています。

tail -f access.log

そのログに追加されたエントリの現在の 1 秒 / 1 分あたりの平均速度を表示できるようにしたいと考えています。テールとパイプを別のコマンド (grep、sed、wc) に使用することで簡単に実行できますか、またはこのデータを取得する別の方法を考える必要がありますか? ありがとう!

4

1 に答える 1

2

リアルタイムで継続的に更新される 1 秒あたりの行数を取得するには、次のpvユーティリティを使用します。

tail -f -n 0 access.log | pv -lr > /dev/null

pv入力がなくなるまで、端末に更新を継続的に書き込むことに注意してください。行が追加される速度のスナップショットが必要なだけの場合、状況はもう少し複雑になります。これが私の刺し傷です(サンプル時間は5秒です):

tail -f -n 0 access.log 2>/dev/null | perl -e '$SIG{ALRM} = sub { print $x/5.0; exit(0) }; alarm 5.0; while(<>) { $x++ }'
于 2013-11-11T16:01:39.220 に答える