具有许多用户和虚拟主机的 Logrotate 通配符

具有许多用户和虚拟主机的 Logrotate 通配符

我托管多个 apache 虚拟主机,具有类似的结构:

- /var/www/
  - domain
     - documentroot
     - logs

因此,我修改了规则,logrotate.d/apache2首先

/var/log/apache2/*.log /var/www/*/logs/*.log {  ... rule details ... }

现在的问题是,logrotate 不允许我旋转文件夹,因为它们根据虚拟主机由用户和组拥有(组通常有多个用户,一个用户等于一个虚拟主机)

错误信息是

错误:跳过“/var/www/default/logs/access.log”,因为父目录具有不安全的权限(它是所有人可写的或者可由非“root”的组写入)在配置文件中设置“su”指令来告诉 logrotate 应该使用哪个用户/组进行轮换。

如何配置 logrotate 以使用父文件夹中的用户和组?
VirtualHosts 在 MPM-ITK 模块下运行,以分离底层 apache/php-cgi 进程的权限。

是否可以避免为每个虚拟主机单独创建配置规则?

答案1

我会采用不同的方法。您有许多用户。每个用户都有自己的主机。每个用户都有自己的 vhost 配置文件。因此,就像您可以指定他们的 phpadmin 值等一样,您已经可以编写访问日志了。

对其进行修改,使其也能进行旋转。

像这样:

CustomLog“|/usr/sbin/rotatelogs /var/www/client55/web2/logs/access2 86400”组合

相关内容