Estou tentando entender a saída da minha execução de script logrotate:
error: erro ao executar o script postrotate compartilhado para '/var/log/nginx/*.log' logrotate_script: 2: logrotate_script: service: not found erro: erro ao executar o script postrotate não compartilhado para / var / log / syslog de '/ var / log / syslog' logrotate_script: 2: logrotate_script: service: not found error: erro ao executar o script postrotate compartilhado para '/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 '
Tanto quanto eu entendo, o logrotate encontra um erro ao executar os scripts pós-rotação para nginx
e syslog
, respectivamente service nginx rotate >/dev/null
e service rsyslog rotate > /dev/null
.
Script de logrotação ( /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
}
O logrotate é executado através do cron como root e a execução manual dos scripts pós-rotate ocorre sem problemas:
Entrada do Crontab (raiz)
00 00 * * * /usr/sbin/logrotate -s /var/lib/logrotate/status /etc/logrotate.conf
Execução manual de script pós-rotação
$ invoke-rc.d nginx rotate >/dev/null 2>&1 && echo $?
0
O que poderia explicar essa mensagem? service:
not found
Respostas:
Você pode escrever o contexto de /etc/logrotate.conf ou arquivo com as regras de rotação de log do ngix?
No rh / centos, 'service' está em / sbin / service, mas no debian / ubuntu está em '/ usr / sbin / service. Você tem um caminho absoluto na pré ou pós-rotação?
fonte