nginx没有自动生成新的日志功能,但是在生产环境中需要,所以我们需要写一个nginx日志切割脚本

    第一步就是重命名日志文件 (不用担心重命名后nginx找不到日志文件而丢失日志。在你未重新打开原名字的日志文件前,nginx还是会向你重命名的文件写日志,Linux是靠文件描述 符而不是文件名定位文件 )

    第二步向nginx主进程发送USR1信号
    nginx主进程接到信号后会从配置文件中读取日志文件名称
    重新打开日志文件 (以配置文件中的日志名称命名) ,并以工作进程的用户作为日志文件的所有者 重新打开日志文件后,nginx主进程会关闭重名的日志文件并通知工作进程使用新打开 的日志文件
    工作进程立刻打开新的日志文件并关闭重名名的日志文件 然后你就可以处理旧的日志文件了。[或者重启nginx服务]

    1. #!/bin/bash
    2. #设置日志文件存放目录
    3. LOG_HOME="/usr/local/nginx/logs"
    4. #备分文件名称
    5. LOG_PATH_BAK="$(date -d yesterday +%Y%m%d%H%M)".access.log
    6. #重命名日志文件
    7. mv ${LOG_HOME}/access.log ${LOG_HOME}/${LOG_PATH_BAK}
    8. #向nginx主进程发信号重新打开日志
    9. kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`