#!/usr/bin/bash

# 日志文件存放目录
logs_path=/var/log/nginx

# nginx进程pid
nginx_pid=`cat /var/run/nginx.pid`

# 日志名称
logs_name=$(date -d "yesterday" +%Y%m%d)

# 改名
mv $logs_path/access.log $logs_path/$logs_name.log

#向nginx主进程发信号重新打开日志
kill -USR1 $nginx_pid

# 保存10天
find /var/log/nginx/ -mtime +10 -name "*.log" -exec rm -rf {} \;

Nginx 的信号控制

信号

功能

HUP

重启

QUIT

从容关闭

TERM,INT

快速关闭

USER1

重置日志

USER2

平滑升级

WINCH

从容关闭进程

使用方法

kill -信号 主进程号


#不用关闭nginx进程就可以重读日志,此命令可以用于nginx的日志定时备份,按月/日等时间间隔分割有用
kill -USR1 nginx主进程号