インソースマーケティングデザイン
2023.12.26 システム
ログファイルから特定の日時範囲のアクセスを抽出する方法
ログファイルを分析し、特定の日付と時間範囲内に行われたアクセスを抽出することは、セキュリティやトラフィック解析において重要です。ここでは、Linuxのawkやsort、uniq、headなどのコマンドを使用して、特定の日時範囲内のアクセスを抽出する方法について解説します。
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}' | sortawkコマンドを使って選択された行から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 -cuniq -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アドレスを表示します。
ログファイルから特定の日時範囲内のアクセスを抽出するためのこれらのコマンドを使うことで、重要な情報を把握し、セキュリティやトラフィックの分析に役立てることができます。
(この記事はログファイルから情報を取得する方法を示すものであり、実際の運用でログファイルから得られる情報にはプライバシーやセキュリティ上の配慮が必要です。個人情報や機密情報を含む場合は、適切なセキュリティ対策を施して取り扱ってください。)
