如何定义apache';s对数旋转';使用外部shell脚本创建文件名

如何定义apache';s对数旋转';使用外部shell脚本创建文件名,apache,shell,rotation,logging,Apache,Shell,Rotation,Logging,我在不同的服务器上运行apache,我希望每天将日志文件重新同步到集中服务器。我可以使用log rotate创建一天的日志文件,并将其放在与中央服务器进行rsync’d的目录中。但是,有没有办法将日志文件名设置为可以从外部文件读取的名称 文件上说我可以做到以下几点, 自定义日志“|/usr/sbin/rotatelogs-f/var/log/httpd/log 86400”通用 我有一个外部配置文件,它有一个指定字段,我可以从命令行解析它来获得它的值,当文件名被定义时,我是否可以添加它。我很想知

我在不同的服务器上运行apache,我希望每天将日志文件重新同步到集中服务器。我可以使用log rotate创建一天的日志文件,并将其放在与中央服务器进行rsync’d的目录中。但是,有没有办法将日志文件名设置为可以从外部文件读取的名称

文件上说我可以做到以下几点, 自定义日志“|/usr/sbin/rotatelogs-f/var/log/httpd/log 86400”通用

我有一个外部配置文件,它有一个指定字段,我可以从命令行解析它来获得它的值,当文件名被定义时,我是否可以添加它。我很想知道这个名称是否可以作为环境变量传递给apache,并在apache的配置中使用它。这可能吗


再次感谢各位

我认为可以通过配置Apache和logrotate来实现这一点。Logrotate由/etc/Logrotate.d/目录中的脚本配置。例如,我的默认apache logrotate配置文件是: /etc/logrotate.d/httpd

/var/log/httpd/*log { missingok notifempty sharedscripts postrotate /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true endscript } /var/log/httpd/*log{ 米森戈克 notifempty 共享脚本 后旋转 /bin/kill-HUP`cat/var/run/httpd.pid 2>/dev/null`2>/dev/null | | true 尾稿 }
检查日志旋转手册页中的postrotate命令。在postrotate阶段,您可以重命名日志文件,并将其放置在rsync可以拾取的位置。

Awesome matie会尝试一下,让您知道。Cheesdamn我的服务器还没有安装logrotate,我的伙伴建议这是因为我们没有首先构建它的复杂依赖关系。我还没有仔细研究过它,有没有依赖性更少的logrotate的替代方案——尽管我对此表示怀疑?否则我可能不得不自己写一些我不喜欢的东西,因为我基本上是在重新发明轮子。谢谢