vim tongji.sh
#!/bin/bash
#by cookie
logdir=/var/log/nginx
logname=myid.cookie.com.access.proxy.log
log=/srv/bin/log
hour=`date +%H` #小时
today=`date +%d/%h/%Y` #日/月/年
duetime=`date +%H:%M:%S` #时:分:秒
datetime=`date +%Y.%m.%d-%H`
td=`date +%Y-%m-%d` #今天日期
yd=`date -d "1 day ago" +"%Y-%m-%d"` #昨天日期
mailContent=mailContent
>"$mailContent"
#first字段为截取日志文件中第一条记录的具体时间(时:分:秒)
first=`cat $logdir/$logname | awk '{print $4}'| head -n 1 | cut -b 14-21`
#last字段为截取日志文件中最后一条记录的具体时间(时:分:秒)
last=`cat $logdir/$logname | awk '{print $4}'| tail -n 1 | cut -b 14-21`
if [ $hour = 09 ];then
dd=$td凌晨3点至早上9点整
for i in 03 04 05 06 07 08
do
cat $logdir/$logname | grep $today:$i > $log/$i
done
elif [ $hour = 17 ];then
dd=$td早上9点至下午18点整
for i in 09 10 11 12 13 14 15 16
do
cat $logdir/$logname | grep $today:$i > $log/$i
done
elif [ $hour = 03 ];then
dd=$yd下午17至$td凌晨3点整
for i in 17 18 19 20 21 22 23 00 01 02
do
cat $logdir/$logname | grep $today:$i > $log/$i
done
fi
cat $log/* > $log/allduelog
cat $log/allduelog | awk '{print $1}' | cut -d: -f1 | sort | uniq -c | sort -nr | awk '{if($1>2000){print($0)}}'> myid.$datetime.txt
mkdir $datetime
for ip in `cat myid.$datetime.txt | awk '{print $2}'`
do
cat $log/allduelog | grep $ip | awk '{print $1"\t"$7}' > $datetime/$ip.txt
done
tar zcvf $datetime.tar.gz $datetime
echo -e "Dear all!\n" >> $mailContent
echo -e "\t myid前台 $dd 访问日志统计(访问量2000以上)。IP共`cat myid.$datetime.txt | wc -l`个。分别是:\n 访问量 \t IP \n `cat myid.$datetime.txt`\n附件为以上的IP具体访问节点报告,烦请查收。" >> $mailContent
cat $mailContent | mutt -s "myid前台日志统计 $dd " cookie1@xxx.net -c cookie2@xxx.net -c cookie3@xxx.net -a $datetime.tar.gz
rm -rf $datetime
rm -rf $log/*
rm -rf myid.$datetime.txt
rm -rf $datetime.tar.gz
每天定时执行脚本
$ crontab -l
1 3,9,17 * * * /bin/bash /srv/bin/tongji.sh