Logrotate не работает из cron на CentOS
Я настроил lograotate на CentOS 6. Он работает нормально, когда я запускаю его вручную, но с CRON это не работает. Крон говорит в своих журналах: "Все хорошо, я запускаю вашу команду", но ничего не происходит. Подробности:
cat /etc/logrotate.d/myproject
/var/opt/myproject/log/error.log {
size=200M
rotate 25
missingok
notifempty
copytruncate
nocreate
nocompress
nodateext
}
кошка /etc/cron.d/1everymin
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
* * * * * root /etc/cron.min/logrotate
cat /etc/cron.min/logrotate
#!/bin/sh
#/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1
/usr/sbin/logrotate -v /etc/logrotate.conf > /logrotate.log
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
Каждую минуту я вижу в / var / log / cron
Jan 16 21:40:01 localhost CROND[31541]: (root) CMD (/etc/cron.min/logrotate)
Jan 16 21:41:01 localhost CROND[31552]: (root) CMD (/etc/cron.min/logrotate)
Jan 16 21:42:01 localhost CROND[31561]: (root) CMD (/etc/cron.min/logrotate)
Jan 16 21:43:01 localhost CROND[31575]: (root) CMD (/etc/cron.min/logrotate)
Jan 16 21:44:01 localhost CROND[31587]: (root) CMD (/etc/cron.min/logrotate)
Но журнал на самом деле не вращается: ничего не происходит, /logrotate.log пуст
Если я выполняю /etc/cron.min/logrotate вручную, все работает нормально, /logrotate.log содержит информацию о вращении журнала
2 ответа
Если SELinux включен, cron не сможет писать в /, чтобы увидеть, включен ли он, используйте:
getenforce
Попробуйте временно войти в другое место, например /var/log/logrotate.log
Обязательно поищите отказы в /var/log/audit/auditd.log, предполагая, что Audit включен.
Я думаюsize=200M
неправильно, вместо этогоsize 200M
правильно согласно справочной странице поворота журнала в вашем файле конфигурации/etc/logrotate.d/myproject