Назад | Перейти на главную страницу

Как повернуть файл журнала из 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 очищается.