
Я работаю над программой, которая создает большой лог-файл.
Я хочу справиться с этим с помощью logrotate.
Вот конфигурация, которую я установил /etc/logrotate.d/
:
/var/log/myproject.log {
hourly
maxsize 1
rotate 6
missingok
notifempty
compress
nocreate
copytruncate
su www-data www-data
}
( /var/log/myproject.log
имеет владельца www-data
)
Команды
sudo logrotate -vf /etc/logrotate.conf
и
sudo logrotate -vf /etc/logrotate.d/myproject
правильно поверните бревно.
Однако после их вызова /etc/cron.hourly
пусто. Это означает, что logrotate не вызывается ежечасно.
Гарантированно ли у меня будет
logrotate
сценарий/etc/cron.daily
?Проверяет ли скрипт частоту обновления файлов журнала. То есть, если у меня есть
logrotate
скрипт/etc/cron.daily
и для какого-то файла журналаX
я/etc/logrotate.d/
установилweekly
настройки, будет лиX
ротация ежедневной или еженедельной?Могу ли я просто скопировать-вставить
/etc/cron.daily/logrotate
в/etc/cron.hourly/
? Могу ли я вырезать и вставить?Стоит ли добавлять
0anacron
файл в/etc/cron.hourly/
?Нужно ли мне сделать что-то еще, чтобы включить почасовое ведение журнала?
решение1
Нет.
-
Each configuration file can set global options (local definitions override global ones, and later definitions override earlier ones)
Так да.
Опять же, из man-страницы:
hourly Log files are rotated every hour. Note that usually logrotate is configured to be run by cron daily. You have to change this configuration and run logrotate hourly to be able to really rotate logs hourly.
Итак, да, вам следует переместить скрипт. Проверив
cron.daily
скрипт в моей системе, я думаю, что его перемещение должно работать нормально.