lanxi256 发表于 2018-11-10 09:06:24

Nginx日志切分

  Nginx的日志默认是一直增长的,为了避免日志一直增长下去,同时为了便于进行日志分析,需要对日志进行定时切分,您可以根据自己网站的情况制定定时任务。
  这方面的资料网上有很多了,这里我参考Nginx大仙张宴的案例,自己做了测试,这里记录一下,便于查阅。
  ee /usr/local/www/nginx/sbin/cut_nginx_log.sh 写入
  


[*]#!/bin/bash
[*]#This script will run at 0:00 everyday;
[*]
[*]# log path
[*]logs_path="/var/log/nginx/"
[*]mkdir -p ${logs_path}$(date -v -1d +"%Y")$(date -v -1d +"%m")/
[*]mv ${logs_path}nginx-access.log ${logs_path}$(date -v -1d +"%Y")$(date -v -1d +"%m")/nginx-access_$(date -v -1d +"%Y%m%d").log
[*]mv ${logs_path}nginx-error.log ${logs_path}$(date -v -1d +"%Y")$(date -v -1d +"%m")/nginx-error_$(date -v -1d +"%Y%m%d").log
[*]
[*]kill -USR1 `cat /var/log/nginx/nginx.pid`
  

  意思是,每月创建一个文件夹,类似201205,再其中,每天创建一个文件,类似nginx-access_20120512.log,然后平滑重启nginx;
  我用的是FreeBSD,因此日期的格式和linux有所不同,Linux下日期的格式如下:
  


[*]$(date -d "yesterday" +"%Y")/${date -d "yesterday"+"%m")/
  

  最后建立自动任务:
  crontab -e
  添加:
  


[*]00 00 * * * /bin/sh /usr/local/www/nginx/sbin/cut_nginx_log.sh
  

  退出。


页: [1]
查看完整版本: Nginx日志切分