Nginx日志分割(shell脚本方式)

  • A+
所属分类:Nginx 运维技术

工作中 Nginx 日志基本为 access_log,配置启动后就开始产生日志文件,日积月累的,这个日志文件会越来越大。针对这种情况,采用日志切割。

1、日志管理

一般nginx的访问日志都是放在、logs/host.access.log下,并且使用main格式。
 

2、确保在http的配置里面有以下配置

(1)#开启记录日志

access_log logs/xiahuhu.cn.access.log main;
 

(2)#定义日志文件输出格式

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" "$http_x_forwarded_for"';

3、编写shell脚本

#!/bin/sh
BASE_DIR=/xxx/xxx/nginx
BASE_FILE_NAME=xiahuhu.cn.access.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`
BAK_FILE=$BAK_PATH/$BAK_TIME-$BASE_FILE_NAME
echo $BAK_FILE

$BASE_DIR/sbin/nginx -s stop

mv $CURRENT_FILE $BAK_FILE

$BASE_DIR/sbin/nginx

4、添加定时任务

0 0 * * * sh /xxx/xxx/nginx/sbin/log.sh #每天执行一次

5、查看生成日志

[root@iZbp1g39f3rcc5ik7ob4uyZ conf]# cd /xxx/xxx/nginx/datalogs/

[root@iZbp1g39f3rcc5ik7ob4uyZ datalogs]# ll

-rw-r--r-- 1 root root 12110 May 14 11:15 20190513-xiahuhu.cn.access.log
 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • 你猜 你猜 0

      用logrotate 比脚本简单