当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。
当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。
但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。
一般我们需要 2 步。
- 移走文件并重命名。
- 利用 nginx 的 reopen 功能,完成新日志文件的生成。
例如:
mv access.log access_20201016.log
nginx -s reopen

当nginx日志文件过大时,通常需要进行切割以方便管理和查询。简单的移动文件并不能立即让nginx进程识别新的日志文件。正确做法是先移动并重命名旧日志,然后使用nginx的reopen功能生成新日志。例如,可以执行`mv access.log access_20201016.log`后,再运行`nginx-sreopen`来确保进程切换到新的日志文件。这样能确保日志记录的连续性和无损性。
336

被折叠的 条评论
为什么被折叠?



