若是使用LNMP网站环境的话,默认nginx只会生成一个访问日志,而且是在天天的积累,日志文件会变的很是大,若是须要作一下日志的分析,不管是使用脚本分析,仍是把日志下载本地分析,都不太方便。天天分割Nginx的访问日志,有利于分析日志。html
脚本内容:nginx
#!/bin/bash # a nginx access log segmentation shell script # www.1987.name cd /data/wslogs log_dir="/data/wslogs" time=`date +%Y%m%d` nginx_dir="/usr/local/webserver/nginx" #日志分割,按天分类 website=`ls $log_dir/access* | xargs -n 1 | cut -f 2 -d "."` for i in $website do mkdir -p $log_dir/backup/$time/$i mv $log_dir/access.$i.log $log_dir/backup/$time/$i/$time.log done $nginx_dir/sbin/nginx -s reload #删除全部超过7天日志。 if [ "`date +%a`" = "Sun" ]; then all_list=`ls $log_dir/backup | xargs -n 1` for del in $all_list do let results=$time-$del if [ $results -gt 7 ]; then rm -fr $log_dir/backup/$del fi done fi
须要注意的是:由于我的须要,Nginx访问日志命名格式必须是access.域名.log
,例如:access.www_1987_com.log
,域名中原来的点.
必须换成其余字符,好比下划线_
web
代码中的一些位置参数能够根据本身须要修改,修改/etc/crontab
文件,加入00 00 * * * root /data/logcron.sh
,天天零点执行。shell
参考连接:bash
http://www.1987.name/682.html网站