如何从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中 ,有没有办法让这个文件旋转?

假设你在机器上拥有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被清理时被删除。