可用于tail
轮换 nginx 日志文件为了有一个单一的日志文件尺寸有上限吗?
tail -c 1000000 access.log > temp.log
mv temp.log access.log
kill -USR1 `cat /var/run/nginx.pid`
access.log
每次超过字节数时,上述操作将在 cron 作业中执行(每 5 分钟运行一次)1100000
。
最后一行告诉 nginx 重新打开日志文件(因为第二行删除了原始文件access.log
)
我读过有关轮换(nginx)日志的各种方法,但从未读过这种方法。
这样,我最终会得到一个大小受限的单个文件。
并且轮换不适用于一组文件而是适用于单个日志文件内的日志条目。
当然tail -c
(从评论来看)会截断第一行(最旧的行)。
主要的问题是,当 tail 写入截断文件时,该过程仍在写入日志条目,因此有些条目可能迷路。
底注:
我知道logrotate
这些newsyslog
工具,也读过文档的主要部分,而且它们对于普通场景来说设置起来也很简单。
我并不是想重新发明轮子。我只是“好奇”想知道是否可以用不同的方式完成事情。
答案可能是不理由非常充分。
我只是想更好地理解这个问题。