Apache在移动/删除日志后停止写日志

我有一堆运行Web服务的EC2实例; 每小时我都要把日志复制回S3。 这工作得很好。

但是,看起来如果我移动日志,然后触摸一个新文件,或者只是写内容到0 Apache停止从这一点写日志。

如何做到这一点最好?

日志文件是通过它们的文件描述符(inode)来访问的,而不是它们的名字。

要安全地旋转apache日志,您必须重新创build日志文件,然后重新启动apache。

大多数发行版都带有预configuration的apache logrotate设置; 看看那些。

通常,logrotate脚本在执行logrotation并创build一个新的日志文件之后,会向正在运行的进程发送reload (发送SIGHUP )。 这使得正在运行的进程(你的情况下,Apache)重新打开日志文件,并继续将日志写入正确的文件描述符。