BLOGスタッフブログ

2023.12.26 システム

ログファイルから特定の日時範囲のアクセスを抽出する方法

ログファイルを分析し、特定の日付と時間範囲内に行われたアクセスを抽出することは、セキュリティやトラフィック解析において重要です。ここでは、Linuxのawksortuniqheadなどのコマンドを使用して、特定の日時範囲内のアクセスを抽出する方法について解説します。

1. awkコマンドを使ってログの時間範囲を指定する

awk '$4 >= "[22\/Dec\/2023\:00" && $4 < "[23\/Dec\/2023\:00"' example.com.access.log

このコマンドでは、awkを使ってログファイル(example.com.access.log)から4番目の列(通常はタイムスタンプ)が特定の日付と時間の範囲内にある行を抽出します。

2. IPアドレスの抽出とソート

awk '$4 >= "[22\/Dec\/2023\:00" && $4 < "[23\/Dec\/2023\:00"' example.com.access.log | awk '{print $1}' | sort

awkコマンドを使って選択された行からIPアドレス(1列目)を抽出し、sortコマンドでソートします。

3. IPアドレスの重複排除とカウント

awk '$4 >= "[22\/Dec\/2023\:00" && $4 < "[23\/Dec\/2023\:00"' example.com.access.log | awk '{print $1}' | sort | uniq -c

uniq -cを使用してIPアドレスの重複を除去し、各IPアドレスの出現回数をカウントします。

4. 出現回数でソート

awk '$4 >= "[22\/Dec\/2023\:00" && $4 < "[23\/Dec\/2023\:00"' example.com.access.log | awk '{print $1}' | sort | uniq -c | sort -rn

出現回数を降順でソートします。

5. 上位20のIPアドレスを表示

awk '$4 >= "[22\/Dec\/2023\:00" && $4 < "[23\/Dec\/2023\:00"' example.com.access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -n 20

最終的に、上位20のIPアドレスを表示します。

ログファイルから特定の日時範囲内のアクセスを抽出するためのこれらのコマンドを使うことで、重要な情報を把握し、セキュリティやトラフィックの分析に役立てることができます。


(この記事はログファイルから情報を取得する方法を示すものであり、実際の運用でログファイルから得られる情報にはプライバシーやセキュリティ上の配慮が必要です。個人情報や機密情報を含む場合は、適切なセキュリティ対策を施して取り扱ってください。)

田村 圭が書いた他の記事

見積もり・ご依頼など、
お気軽にご相談ください

本サイトはユーザーエクスペリエンスの向上などを目的に、Cookieを使用しています。
右記のバナーで「同意する」をクリックする、または本サイトを利用することにより、
お客様は弊社のCookieポリシーに同意したことになります。

同意します