Log Rotate не вращает журналы [duplicate]

У меня есть logrotate, запущенный на Aws ec2 instance, который пытается вращать журналы в /var/log/tomcat8/ каждый час. У меня есть следующая конфигурация в /etc/logrotate.d/rotate_tomcat:

"/var/log/tomcat8/localhost_access_log.*-*-*.txt" "/var/log/tomcat8/catalina.*-*-*.log" "/var/log/tomcat8/agent-log.*-*-*.json" "/var/log/tomcat8/ldap-query-log.*-*-*.*.json" {
    copytruncate
    size 1k
    rotate 5
    compress
    missingok
    create 0644 tomcat tomcat
}

Когда я запускаю это вручную, это работает, как ожидалось. Но когда я запускаю это как crond, это ничего не делает. Ниже приведен мой конфиг crond в /etc/crond.d/accessLogDeletion

*/2 * * * * * root logrotate /etc/logrotate.d/rotate_tomcat

Любой вклад будет оценен по достоинству.

1
задан 19 March 2020 в 10:53
1 ответ

Проблема связана с PATH в сеансе cron.

/bin/sh: 1: logrotate: not found

Вы можете исправить, указав полный путь к команде:

*/2 * * * * root /usr/sbin/logrotate /etc/logrotate.d/rotate_tomcat >> /var/log/myCron.log  2>&1

или с помощью PATH env при запуске сценария cron:

PATH=/usr/sbin:/usr/bin:/sbin:/bin

*/2 * * * * root logrotate /etc/logrotate.d/rotate_tomcat >> /var/log/myCron.log  2>&1

Это хорошо попрактикуйтесь в протоколировании вывода команд cron, как указано выше.

3
ответ дан 30 March 2020 в 00:14

Теги

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