Nginx 日志文件的切割

    生产环境中的服务器,由于访问日志文件增长速度非常快,日志太大会严重影响服务器效率。同时,未来方便对日志进行分析计算,需要对日志文件进行定时切割。常用按天切割。
    日志文件切割原理:
    mv   /usr/local/nginx/logs/access.log     /usr/local/nginx/logs/20131221.log
    kill     -USR1  Nginx主进程号
    先通过 mv 命令将日志文件重命名为 /usr/local/nginx/logs/20131221.log,  然后发送 kill -USR1 信号给Nginx 主进程号,杀掉Nginx,让Nginx重新生成一个新的日志文件/usr/local/nginx/logs/access.log。
     如果  nginx.conf 配置文件中使用了 "pid /usr/local/nginx/nginx.pid;" 指令, 指定了 pid 文件 的 存放路径, 可以通过 cat 这个 pid 文件获得 Nginx 的 主进程号。
     kill -USR1 'cat  /usr/local/nginx/nginx.pid'
     如果要每天定时切割日志,还有借助crontab 轮询运行一个shell 脚本。
    vi   /usr/local/nginx/sbin/cut_nginx_log.sh
   输入以下内容并保存:
  # !/bin/bash
  # 每天00:00运行
  #  Nginx 日志文件存放路径
  logs_path="/usr/local/nginx/logs/"
 
  #  创建目录 /usr/local/nginx/logs/年/月/
  mkdir -p ${logs_path}$(date -d "yesterday" + "%Y")/$(data -d "yesterday" + "%m")/
  #  将access.log 文件移动并重命名为 /usr/local/nginx/logs/年/月/ access_年月.log
  mv ${logs_path}access.log    ${logs_path}$(date -d "yesterday" + "%Y" )/$(date -d "yesterday" + "%m")/access_$(date -d "yesterday" + "%Y%m%d").log
  #  再发送 kill -USR1 信号给Nginx 主进程,告诉Nginx 重新生成一个 /usr/local/nginx/logs/access.log 文件
  kill -USE1 'cat /usr/local/nginx/nginx.pid'