nginx日志的分析非常重要,通常需要对nginx的日志进行切割和分析处理。比如可以实现一个定时任务,去处理nginx日志。
在nginx.conf下配置日志的位置
server{ listen 88; server_name bushro.com; access_log /usr/local/nginx/logs/bushro.com.log main; location /{ root html; index index.html; } }
正常日志是放到logs路径下,我们需要创建备份的日志目录
mkdir datalogs
备份日志脚本
#!/bin/sh BASE_DIR=/usr/local/nginx ##日志名称 BASE_FILE_NAME=bushro.com.log ##日志产生位置 CURRENT_PATH=$BASE_DIR/logs ##日志备份位置 BAK_PATH=$BASE_DIR/datalogs CURRENT_FILE=$CURRENT_PATH/$BASE_FILE_NAME ##日志按时间格式来命名 BAK_TIME=`/bin/date -d yesterday +%Y%m%d%H%M` ##日志的全路径+名称 BAK_FILE=$BAK_PATH/$BAK_TIME-$BASE_FILE_NAME echo $BAK_FILE ##停止nginx $BASE_DIR/sbin/nginx -s stop ##把当前日志备份到datalogs目录下 mv $CURRENT_FILE $BAK_FILE ##启动nginx $BASE_DIR/sbin/nginx
创建定时任务
crontab -e
每日凌晨0点执行一次
* 0 * * * sh /usr/local/nginx/sbin/log.sh
每分钟执行一次
*/1 * * * * sh /usr/local/nginx/sbin/log.sh
每分钟的效果