linux – logrotate如何处理并发?

如果logrotate在更新日志文件的同时运行,会发生什么?
新日志是否会旋转到历史日志文件中?或者它将保留在当前日志文件中?

谢谢,

解决方法

在轮换日志期间,消息可以以旧文件或新文件结束,但是以确定的方式. Logrotate对每个日志文件大致执行以下操作:

>将日志重命名为存档名称
>通知应用程序重新打开其日志
>可选择压缩日志文件

如果消息记录在1和2之间,则这些消息将在重命名的日志中结束,因为重命名不会影响打开的文件描述符(这也是压缩仅在应用程序重新打开日志后发生的原因).在2之后记录的消息将在新日志中结束.

这是我的logrotate配置的摘录,它执行我为Nginx’日志描述的内容

/var/log/Nginx/*.log {
    compress
    delaycompress
    postrotate
        [ ! -f /run/Nginx.pid ] || kill -USR1 `cat /run/Nginx.pid`
    endscript
}

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...