Top/Devel/ShellScript/Apacheのログ管理

Apacheのログ管理 の変更点はてなブックマーク


**リファラを表示
 awk '{if ($11 ~ /^"http/) print $11}' access_log | sed 's/"//g'

**特定のユーザーで認証したことのあるIPからのログを消去
 L=access_log; T=temp.tmp; if test ! -f $T; then \
 for i in `awk '{if($3=="admin"){print $1}}' $L | sort -u`;\
 do sed /^$i\ /d $L > $T; mv -f $T $L; done; fi
.をエスケープしてないけど、IP+半角スペースでマッチングしているので多分大丈夫。~

// if test ! -f access_log.tmp ;then \
// for i in `awk '{if($3=="hoge"){print$1}}' access_log|sort -u`;\
// do awk {if\(\$1!=\"$i\"\){print}} access_log>access_log.tmp;\
// mv -f access_log.tmp access_log;done;fi

**ローテートされたログをマージ
 ls access.log.* | sort -nr -t. -k3,3 | xargs cat > merged.log

**クローラーのIPを表示
 awk '{if($7=="/robots.txt"){print$1}}' access_log | sort -un -t. -k1,1 -k2,2 -k3,3 -k4,4

**アクセス元ホストを逐次表示
 tail -f access_log | gawk '{system("dig -x "$1" +short")}' | sed 's/\.$//'

*関連
-[[Linux/Apache/Tips/WebDAV脆弱性狙いのワーム対策]]

*参考
-[[The GAWK Manual - Table of Contents>http://infoshako.sk.tsukuba.ac.jp/jdoc/GNU/AWK/jgawk-jman/html/]]
-[[AWKの第一歩>http://lagendra.s.kanazawa-u.ac.jp/ogurisu/manuals/awk/intro/awk-intro.html]]
-[[Sort IP Addresses with GNU sort>http://www.madboa.com/geek/sort-addr/]]
-[[32nd diary(2006-03-24)>http://taka.no32.tk/diary/20060324.html#p01]]
差分 一覧