linux Nginx 日志脚本

这篇文章主要介绍了nginx日志切割脚本、nginx日志分析脚本等,需要的朋友可以参考下。

http://www.jbxue.com/article/13927.html

任务计划

crontab -l

1 15 * * * /home/dongnan/sh/split.sh >> /home/dongnan/sh/cron.log 2>&

nginx 日志

ls /var/log/nginx/

20130730-access.log.gz 20130801-access.log.gz 20130803-access.log.gz

20130730-error.log.gz 20130801-error.log.gz 20130803-error.log.gz

20130731-access.log.gz 20130802-access.log.gz access.log

20130731-error.log.gz 20130802-error.log.gz error.log

shell 脚本

cat split.sh

fi

done

#new_log

/bin/kill -USR1 $(cat $nginx_pid) && /bin/sleep 1

nginx日志切割脚本:

vi /root/cutlog.sh

mv $ACCLOG.`date -d "-10 day" +%F`.* /mnt/history.nginx.log/ #将10天前的老日志清理到其他地方,(你们如果想删除的可以自己改成删除)

mv $ERRLOG.`date -d "-10 day" +%F`.* /mnt/history.nginx.log/

fi

fi

nginx日志分析脚本:

vi /mnt/logs/checklog.sh

cat $1 | awk '{print $1}' | sort | uniq -c| sort -rn | head -n20 >> /mnt/logs/IP.txt

N=`cat /mnt/logs/CODE.txt | wc -l`

for I in $(seq 1 $N)

do # www.jbxue.com

M=`head -n$I /mnt/logs/CODE.txt | tail -n1 | awk '{print $2}'`

if [ $M -ge 400 ]

then

echo "#####FIND $M###############">>/mnt/logs/400.txt #分析错误请求

cat $1 | grep "\" $M " | grep -v ' "-" "-" - ' | sort | awk '{print $1 $2 $3 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $20 $21}' | sort | uniq -c | sort -rn | head -n5 >> /mnt/logs/400.txt

fi

done

cat $1 | grep -v ' "-" "-" - ' | awk -F'T' '{print $2}' | awk -F'?' '{print $1}' | sort |awk '{print $1}' | sed 's/\(\/review\/file\/download\/\).*/\1/g' | sort | uniq -c | sort -rn | head -n20 >> /mnt/logs/URL.txt