Я пытаюсь понять результат выполнения моего скрипта logrotate:
error: error running shared postrotate script for '/var/log/nginx/*.log ' logrotate_script: 2: logrotate_script: service: not found error: error running non-shared postrotate script for /var/log/syslog of '/var/log/syslog ' logrotate_script: 2: logrotate_script: service: not found error: error running shared postrotate script for '/var/log/mail.info /var/log/mail.warn /var/log/mail.err /var/log/mail.log /var/log/daemon.log /var/log/kern.log /var/log/auth.log /var/log/user.log /var/log/lpr.log /var/log/cron.log /var/log/debug /var/log/messages '
Насколько я понимаю, logrotate сталкивается с ошибкой при запуске постротационных сценариев для nginx
и syslog
, соответственно service nginx rotate >/dev/null
и service rsyslog rotate > /dev/null
.
Сценарий Logrotate (/etc/logrotate.d/nginx
)
/var/log/nginx/*.log {
daily
missingok
rotate 365
compress
delaycompress
notifempty
create 0640 www-data www-data
olddir /var/log/archives/nginx
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi \
endscript
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
endscript
}
Logrotate запускается через cron от имени пользователя root, и запуск сценариев postrotate вручную проходит без проблем:
Запись в Crontab (root)
00 00 * * * /usr/sbin/logrotate -s /var/lib/logrotate/status /etc/logrotate.conf
Ручное выполнение постротационного скрипта
$ invoke-rc.d nginx rotate >/dev/null 2>&1 && echo $?
0
Чем мог объяснить этот service:
not found
сообщение?