发布网友 发布时间:2022-04-28 14:15
共2个回答
热心网友 时间:2022-04-09 16:42
实际上你要做的是对nginx的日志进行切分。不知道我理解的对不?
如果是对nginx的日志进行切分的话,可以采用如下操作:
(1)cd logs && mv error.log error.log.suffix #suffix可以设置为一个时间戳解释:
在执行了(1)之后,之前写到error.log中的日志还是会写到error.log.suffix文件中。因为,文件的inode没有变化(可以使用stat命令查看)。
在执行了(2)之后,由于nginx在重启的过程中会重新生成error.log,因此,新的日志就不再写入到error.log.suffix,而是写入到新的文件error.log。从而实现了在不丢失日志,不中断服务的情况下实现nginx的日志切分。
对于上述命令,可以写到一个sh脚本中,并且配置成crontab定时任务去定时切割。
注意,重启nginx一定要是用nginx -s reload选项。
追问能给个sh脚本么 非常感谢追答#!/bin/sh
NGX_INSTALL_PATH=/home/wangwei/nginx;
NGX_LOG_PATH=/home/wangwei/nginx/logs;
#日志的后缀为2013080511的格式,日志切分可定位每小时切分一次。
suffix=$(date +%Y%m%d%H);
#重命名
cd $NGX_LOG_PATH && mv error.log error.log.$suffix;
#重启nginx,生成新的日志文件.
cd $NGX_INSTALL_PATH && ./sbin/nginx -s reload;
可以把上述脚本配置成定时任务。
热心网友 时间:2022-04-09 18:00
可以使用日志文件名转换和reload命令结合的操作方式完成。