ログファイル(メールログ)から特定の文字列(ドメイン名)の出現回数を1時間ごとにカウントするスクリプトを作成し、1時間あたりのメール送信数を確認したいと考えています。
ファイル内のスクリプトを検索し (grep など)、行を数える (wc -l など) 簡単でさまざまな方法があることは知っていますが、1 時間ごとに実行する方法がわかりません。
はい、cronジョブを介して60分ごとにスクリプトを呼び出すことができますが、これはログファイルを最初からスクリプトが実行された瞬間まで読み取ります..過去60分間に作成された行ではなく、方法がわかりませんこれを克服するために。
ノート:
ドメインごとに送信されたすべての電子メールを表示するために使用しているコマンドは次のとおりです。
\# cat /usr/local/psa/var/log/maillog | grep -i qmail-remote-handlers \
| grep from | awk {' print $6 '} | gawk -F@ '{ print $2 }' \
| sort | uniq -c | sort -n | tail
結果は次のようになります。
8 domain1.tld
45 domain34.tld
366 domain80948.tld
etc etc