作ってみた **分割スクリプト --( 下記スクリプトを適当なファイル名(split.shとか)で保存 その日のログは大体00:10くらいにはできてるので、それ以降にスクリプトを実行 /home/''ユーザ名''/log/''ドメイン名''/access_log_YYYYMDDが出力される あとはお好きに cronとかにでも登録しとくと自動で分割されるので便利、かも --) ***スクリプト ---( #!/usr/local/bin/bash LANG=C TODAY=`date -v-1d +%Y%m%d` LOG_DIR=$HOME/log ACCESS_LOG=access_log_$TODAY cd $LOG_DIR for logfile in $ACCESS_LOG do for domain in `/usr/bin/awk '{print $1}' $logfile | /usr/bin/sort | /usr/bin/uniq` do if [ ! -e $domain ]; then /bin/mkdir $domain fi /usr/bin/grep "^$domain" $logfile | /usr/bin/cut -f2- -d ' ' > $LOG_DIR/$domain/$logfile done done # /bin/rm $ACCESS_LOG exit ---) **変換スクリプト --( 行の先頭にある%vを%lの位置に移動させる変換スクリプト。 /home/''ユーザ名''/log/changeに変換されて圧縮したファイルが出力される。 (最初から%lを%vにしてくれればこんなもの必要ないのだが。) Apache Log Viewerなら「Remote logname フィールドを Server name と見なす」にチェックを入れると、 Serverの欄にドメインが表示されるようになる。 --) ***スクリプト ---( #!/usr/local/bin/bash LANG=C TODAY=`date -v-1d +%Y%m%d` LOG_DIR=$HOME/log CHANGE_LOG_DIR=$HOME/log/change ACCESS_LOG=access_log_$TODAY if [ ! -e $CHANGE_LOG_DIR ]; then /bin/mkdir $CHANGE_LOG_DIR fi cd $LOG_DIR /usr/bin/awk '{printf "%s %s",$2,$1; for(i=4;i $CHANGE_LOG_DIR/$ACCESS_LOG cd $CHANGE_LOG_DIR /usr/bin/gzip $ACCESS_LOG >/dev/null 2>&1 /usr/bin/find *.gz -mtime +32 -exec /bin/rm -f '{}' ';' exit ---)