本文共 603 字,大约阅读时间需要 2 分钟。
1、简介
nginx日志如果你不及时处理,日志文件将变得越来越大,为此可以写一个nginx日志切割脚本来自动切割日志文件。
2、方法
脚本如下:
#!/bin/bash #设置日志文件存放目录 logs_path="/usr/local/nginx/logs/" #设置pid文件 pid_path="/var/run/nginx.pid" #重命名日志文件 mv ${logs_path}access.log ${logs_path}access_$(date -d "yesterday" +"%Y%m%d").log #向nginx主进程发信号重新打开日志 kill -USR1 `cat ${pid_path}`
第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志。在你未重新打开原名字的日志文件前,nginx还是会向你重命名的文件写日志,linux是靠文件描述符而不是文件名定位文件。 第二步向nginx主进程发送USR1信号。 nginx主进程接到信号后会从配置文件中读取日志文件名称,重新打开日志文件(以配置文件中的日志名称命名),并以工作进程的用户作为日志文件的所有者。 重新打开日志文件后,nginx主进程会关闭重名的日志文件并通知工作进程使用新打开的日志文件。 工作进程立刻打开新的日志文件并关闭重名名的日志文件。 然后你就可以处理旧的日志文件了。
参考文献:
转载地址:http://bmdoi.baihongyu.com/