Я должен включить 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 повернуты без проблемы согласно сценарию.
Можно ли помочь мне?
Вот другая полезная информация:
crontab имеет ограниченную среду, поэтому попробуйте использовать абсолютный путь и перенаправить вывод команды в файл, это поможет вам в случае ошибок.
0 * * * * / usr / sbin / logrotate --force /etc/logrotate.d/jenkins> /tmp/outfile.log 2> & amp; 1