Как включить logrotation с Jenkins

Я должен включить logrotate сервис с Jenkins для вращения его файлов журнала (/var/log/jenkins/jenkins.log). Так, я настроил сценарий в/etc/logrotate.d с правильными полномочиями:

/var/log/jenkins/jenkins.log {
        hourly
        copytruncate
        missingok
        rotate 8
        compress
        delaycompress
        size 5G
}

Полномочия 644, и владелец является корнем что касается каждого logrotate сценария.

logrotate сервис работает правильно, но не для Jenkins. Никакие файлы журнала не повернуты!

Так, я пытался вставить команду непосредственно в crontab корня:

0 * * * * logrotate --force /etc/logrotate.d/jenkins

Но также и эта команда не работает вообще, даже если сервис крона работает правильно каждый час согласно журналам крона:

cat /var/log/syslog | grep logrotate
[...]
Jun  4 09:00:01 CI-prod CRON[11794]: (root) CMD (logrotate --force /etc/logrotate.d/jenkins)
Jun  4 10:00:01 CI-prod CRON[525]: (root) CMD (logrotate --force /etc/logrotate.d/jenkins)

Однако, если я вручную выполняюсь, команда logrotate (logrotate - вызывают/etc/logrotate.d/jenkins), это работает хорошо, и журналы Jenkins повернуты без проблемы согласно сценарию.

Можно ли помочь мне?

Вот другая полезная информация:

  • ОС: Ubuntu 16.04.1 LTS
  • Версия Jenkins: 2.121.2
  • Версия Java: 1.8.0_121
1
задан 4 June 2019 в 11:18

1 ответ

crontab имеет ограниченную среду, поэтому попробуйте использовать абсолютный путь и перенаправить вывод команды в файл, это поможет вам в случае ошибок.

0 * * * * / usr / sbin / logrotate --force /etc/logrotate.d/jenkins> /tmp/outfile.log 2> & amp; 1

0
ответ дан 4 June 2019 в 11:18

Другие вопросы по тегам:

Похожие вопросы: