何だか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 -- 累積