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]]