Visitorsでログ取りするスクリプトに恥ずかしいバグが・・・

2010年7月4日 スクリプト関連, 雑記

何だか2日に実行し忘れて後日処理を行ったときの月次処理が行われないとか、圧縮ファイルを作るときに含まれているべきファイルが抜けているとか色々恥ずかしい感じのところを修正した。
使い方はこのページにある通り

#!/bin/bash
### kotokoilogs_v3.1
drv () {
    cat access_log${2} >>acl${1}.txt
    visitors -A -m 250 acl${1}.txt >acl${1}.html
}
ext () {
    local rnmMt=`date -d "$(( 2 + ${dag} )) days ago" '+%Y%m'`
    echo ${rnmMt}
    mv acl1.txt acl${rnmMt}.txt
    mv acl1.html ./monthly/acl${rnmMt}.html
    zip -5 acl${rnmMt}.zip acl${rnmMt}.txt ./monthly/acl${rnmMt}.html ./daily/*.*
    rm acl${rnmMt}.txt ./daily/*.*
    cp access_log${2} acl1.txt
}
logs () {
    wget -P "/home/user/dir/logs" "ftp://ID:PASS@domain/../logs/access_log${2}"
    drv 2 ${2}
    local Dt=`date -d "${dag} days ago" '+%d'`
    case "${Dt}" in
        #今日は2日です
        02 ) ext 0 ${2} ;;
        #今日は2日ではありません
        * ) echo "通常処理" ;;
    esac
    drv 1 ${2}
    visitors -A -m 250 access_log${2} >./daily/${ymd}.html
    rm "access_log${2}"
    case "${1}" in
        0 ) echo "完了" ;;
        * ) epiphany ./daily/${ymd}.html acl1.html acl2.html ;;
    esac
}
cd '/home/user/dir/logs'
case "${2}" in
    [1-6] ) dag=${2}
    bkdate=_${2}
    ;;
    * ) dag=0 ;;
esac
ymd=`date -d "${dag} days ago" '+%Y%m%d'`
case "${1}" in
    0 ) logs 1 ${bkdate} ;;
    1 ) epiphany ./daily/${ymd}.html acl1.html acl2.html ;;
    * ) logs 0 ;;
esac
### ${ymd}.html -- 日次
### acl1.html -- 月次
### acl2.html -- 累積

コメントは受け付けていません。