У меня два разных (i386 v AMD) бокса Debian, и у меня одна и та же проблема. logrotate не будет вращать мои журналы автоматически. Он работает нормально, когда я заставляю его вручную, как
/usr/sbin/logrotate -f /etc/logrotate.conf
но это не хорошо для меня.
Настройки не были изменены (по крайней мере, я не изменял их), AMD-установка - новая установка, но она не справится со своей задачей.
Если вы заметили похожую проблему, пожалуйста, помогите мне.
Обновление (некоторые данные сервера):
logrotate -d
http://pastebin.com/e6AshtGq
ls -l /var/log
http://pastebin.com/Y2A4Li59
cat /etc/logrotate.conf
http://pastebin.com/1h7Uwctr
ls -l /etc/logrotate.d
http://pastebin.com/NvUAeszM
debian
logrotate
debian-squeeze
Fabrik
источник
источник
...rsyslogd was HUPed...
не уверен, что это что-то значит.cron.daily
но вращение не произойдет.Ответы:
Проверьте, что ваш logrotate запускается cron.
Редактировать:
Из обсуждения комментариев - кажется, что cron работает неправильно. У меня был cronjob в моем crontab без пользователя, но это стало известно только после перезапуска демона cron
В моих системах Ubuntu и Centos есть
/etc/cron.daily/logrotate
файл, содержимое которогоВ моем / etc / crontab есть следующая строка для запуска ежедневных заданий
источник
ps -ef | grep cron| grep -v grep
? Добавьте эхо в начало /etc/cron.daily/logrotateecho "logrotate runing" >>/tmp/logrotate.out
и посмотрите, будет ли оно создано.cron
запущен, но не запускает ежедневное задание logrotate. Если я запускаю/etc/cron.daily/logrotate
вручную, он вращает мои журналы,/tmp/logrotate.out
также написано./etc/cron.daily/logrotate
поэтому я добавил-f
параметр для принудительного вращения, но сегодня утром мои журналы не были повернуты.У меня была похожая проблема, но
crontab
она работала и для некоторых каталогов журналовlogrotate
работала, а для некоторых - нет. Когда я попытался запустить logrotate вручную, я получил несколько сообщений об ошибках.Все
*.1.gz
файлы имели размер 0. Я вручную удалил все файлы, упомянутые в сообщении об ошибке,sudo /usr/sbin/logrotate -f /etc/logrotate.conf
снова запустился и все заработало.Я просто хотел поделиться этим альтернативным решением и здесь, так как это был первый результат поиска, который появился у меня, когда я искал проблему, но предложенное решение не сработало для меня. Может быть, это помогает и другим, которые находятся в той же ситуации, что и я.
источник
Знаю, знаю. 5 летняя нить.
Подумал только, если это все равно будет достаточно высоко в поисках, я внесу свой вклад и дам свое решение проблемы, с которой столкнулся. Мои задания logrotate не обрабатывались автоматически ни на одном из моих серверов. Принудительное вращение работало нормально. Я нашел решение после того, как вручную выполнил команду ежедневного вращения:
Затем я увидел ошибку, которая остановила logrorate заданий от запуска:
Да, так просто. У меня было два файла, определяющих одни и те же логи для вращения (iptraf и iptraf-ng). Простое удаление одного из конфликтующих определений logrotate для iptraf добилось цели.
Другой проблемой может быть испорченный файл / etc / crontab. Значение двойной или тройной проверки синтаксиса в этом файле, так как он не дает никакого вывода, который я мог бы найти, если синтаксис неправильный. Тихо завершает работу после неудачной проверки синтаксиса.
Надеюсь, это сэкономит кому-то время.
источник
ОК, у меня была похожая проблема.
"журналы не вращаются?" но запускать logrotate вручную (или запускать
/etc/cron.daily
и вращать их просто отлично.Таким образом, кажется, что Cron просто «не работает» ежедневно. Странный. Поэтому я посмотрел в лог-файле, где cron выводит свои данные, и увидел, что «токен аутентификации больше не действителен; требуется новый» для исправления этой конкретной проблемы, см. Здесь
источник
Я часто видел, как это происходит со временем, когда меняются сервисы, и параметры, используемые в logrotate, были отредактированы, что приводило к сбою logrotate каждый день.
Чтобы дать вам представление, последнее исправление включало параметр notifyempty в файле apache logrotate, который больше не действителен, что, в свою очередь, заставляло logrotate останавливаться все вместе.
Хотя это уже было рассмотрено, я хотел бы поделиться процессом, через который я прохожу при отслеживании этих проблем:
#/usr/sbin/logrotate -f /etc/logrotate.conf
чтобы найти ошибки (например, postfix: 3 'missingok'). Файл и номер строки, на которую он ссылается, это файл в папке logrotate.d.
# vi /etc/logrotate.d/postfix
и удалите параметр, вызывающий проблему, и сохраните файл.Есть моменты, когда первый шаг просто выводит что-либо, но вы знаете, что есть проблема. Поскольку все это началось из-за того, что файлы журнала для службы не вращались, вы можете наблюдать за процессом logrotate, который ищет конкретную службу, чтобы увидеть, что мешает ей вращаться. Для этого добавьте подробный тег в команду logrotate и посмотрите, что происходит в этой папке (если что-нибудь).
источник
Проверьте конфликтующие параметры конфигурации logrotation !!
Я боролся с этим вопросом , и я , наконец , прочитать документацию по LogRotate очень внимательно, я нашел какую - то полезную документацию здесь .
Я указал и параметр Size, и параметр Rotation Interval , хотя на самом деле я не хотел ни того, ни другого. Я хотел, чтобы мои вращения происходили именно тогда, когда они были запланированы в cron.
Итак, избавьтесь от параметра Rotation Interval и Size . Тогда вы будете получать вращение каждый раз, когда вызывается logrotate без необходимости его форсировать.
РЕДАКТИРОВАТЬ : ОК, даже это не совсем работает! Если файл журнала ниже определенного порога, журналы не будут вращаться. Поэтому, когда я запускал задание cron, которое вращалось каждые 2 минуты, оно не вращало логи.
Вы можете увидеть подробную информацию отладки, если вы запустите
logrotate -d
. Это обеспечивает очень полезную информацию отладки.источник