如何从 crontab 轮换日志文件?

如何从 crontab 轮换日志文件?

我的 crontab 上有这个指令:

* * * * * /var/www/github/mysite/bin/email email worker await --pid=/var/run/mysite-worker-email.pid >> /tmp/mysite-worker-email.log

正如您所看到的,我的所有日​​志都写在/tmp/mysite-worker-email.log,有什么办法可以旋转该文件吗?

答案1

假设您在机器上拥有 root 权限。如果您使用的是共享主机,SF 无论如何都不适合您。

检查/etc/logrotate.conf和是否/etc/logrotate.d存在。如果存在,则添加一个具有合适名称的文件,例如,site_email内容/etc/logrotate.d如下:

/tmp/mysite-worker-email.log {
   compress
   daily 
   missingok
   rotate 7
}

这将每天轮换日志文件,并保留过去 7 天的压缩副本。logrotate还有更多选项,请参阅查看man logrotate.conf全部选项。

请注意:保留日志文件/tmp不是一个好主意。将它们放到/var/log/它们应该放的地方,特别是如果你想保留日志文件的更多副本,并且不想在/tmp清理时删除它们。

相关内容