我正在使用 logrotate 在我的网络服务器上轮换我的 Symfony2 日志。
一切正常,但我希望通过电子邮件将旧日志发送给我。
所以,我在我的 logrotate conf 文件中添加了一些行,如下所示
日志旋转配置
/var/www/symfony/app/logs/prod.log {
daily
missingok
rotate 5
compress
notifempty
mail myemail@example.com
su www-data www-data
}
Run Code Online (Sandbox Code Playgroud)
现在我确实收到了电子邮件,但内容并不是我所期望的。
收到电子邮件
/etc/cron.daily/logrotate:
错误:/var/www/symfony/app/logs/prod.log.6.gz 的邮件命令失败
错误:解压缩命令失败邮件/var/www/symfony/app/logs/ prod.log.6.gz
运行部分:/etc/cron.daily/logrotate 退出并返回代码 1
我对这个错误做了很多研究,但没有找到任何有用的东西。我已经启动了一个 strace,希望对这个问题有一些了解,但它没有按预期工作。
跟踪命令
strace -f -o ./strace.txt logrotate -d /etc/logrotate.d/symfony2
Run Code Online (Sandbox Code Playgroud)
生成的文件相当大,但我认为相关部分如下
跟踪输出
6842 execve("/usr/bin/mail", ["/usr/bin/mail", "-s", "/var/www/symfony/app/logs/prod."..., .com"], [/* 18 vars /]
6841 <... setgid resumed> ) = 0
6842 <... execve resumed> ) = -1 ENOENT(没有这样的文件或目录)
6841 setuid(0) = 0
6841 execve("/bin/gunzip", ["/bin/gunzip"], [/ …