Как может logrotate результат выполнения в "service: not found"?
Я пытаюсь понять вывод моего выполнения сценария logrotate:
ошибка: ошибка при запуске общего постротационного скрипта для /var/log/nginx/*.log logrotate_script: 2: logrotate_script: служба: не найдена ошибка: ошибка при запуске нераспространенного сценария постротации для /var/log/syslog из '/var/log/syslog ' logrotate_script: 2: logrotate_script: служба: не найдена ошибка: ошибка при запуске общего постротационного скрипта для '/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/messages '
Насколько я понимаю, logrotate обнаруживает ошибку при запуске сценариев постротации для nginx
а также syslog
соответственно service nginx rotate >/dev/null
а также service rsyslog rotate > /dev/null
,
Скрипт логротации (/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
сообщение?
1 ответ
Можете ли вы написать контекст /etc/logrotate.conf или файл с правилами ротации журналов ngix?
В rh/centos 'service' находится в /sbin/service, но в debian/ubuntu находится в '/usr/sbin/service. У вас есть абсолютный путь до или после поворота?