#!/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主进程号