~Linux、MySQLからAJAXまでDos攻撃など大量アクセスのログを検知するBashスクリプトを作成Apacheのアクセスログのサイズが異常に大きくなっている場合があります。アクセスログをチェックして、ある特定の送信元から大量のアクセスがあった場合にメール通知するBashスクリプトの作成例です。※目次をクリックすると目次の下部にコンテンツが表示されます。私が運用しているVPSサーバーで実際に記録されていた一例です。275Linuxのgrep、awk、sortなどを使って大量アクセスの送信元を抽出1)送信元アドレスをキーにして集計1時間を指定して抽出アクセスログの日付フォーマットが”02/Jun/2015′′の形式なので、昨日の日付を同フォーマットで出力する場合は下記のようにdateコマンドのオプションを指定します。上記ログ出力例より送信元アドレスは1番目のフィールドなので、awkコマンドで以下のように指定して抽出できます。送信元アドレスのみの場合だと検索エンジンのロボットからのアクセスも含まれてしまいます。送信元アドレスと宛先URLのパスのペアをキーにして集計する場合は下記のようにします。上記ログ出力例より送信元アドレスは1番目、宛先URLのパスは7番目のフィールドなので、下記コマンドで抽出できます。$fmail_diskfi※正規表現を使ったパターンマッチ、ファイル内のデータ読取りなどの方法については下記記事参照。bashでパターンマッチを使って条件評価ファイルの中身を一行ずつ読んで文字列を置換するbashスクリプト2)上記1)のスクリプトをcronに登録cronの設定についてはいろいろ方法があります。/home/user/bkup/access.sh関連記事の目次VPSの開始からWebサイト公開、運用VPSにログイン、SSH接続、初期設定VPSサーバーでスナップショットを取得~障害に備え、リカバリーポイントを作成。VPSサーバーにログインして、設定内容を確認~グローバルIPアドレス確認、SSHキーを作成。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。