J'essaie de comprendre le résultat de l'exécution de mon script logrotate:
erreur: erreur lors de l'exécution du script postrotate partagé pour '/var/log/nginx/*.log' logrotate_script: 2: logrotate_script: service: non trouvé erreur: erreur lors de l'exécution du script postrotate non partagé pour / var / log / syslog de '/ var / log / syslog' logrotate_script: 2: logrotate_script: service: non trouvé erreur: erreur lors de l'exécution du script postrotate partagé pour '/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 '
Autant que je sache, logrotate rencontre une erreur lors de l'exécution des scripts postrotate pour nginx
et syslog
, respectivement service nginx rotate >/dev/null
et service rsyslog rotate > /dev/null
.
Logrotate script ( /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 est exécuté en tant que root via cron. L'exécution manuelle des scripts postrotate se passe sans problème:
Entrée de la crontab (racine)
00 00 * * * /usr/sbin/logrotate -s /var/lib/logrotate/status /etc/logrotate.conf
Exécution manuelle du script postrotate
$ invoke-rc.d nginx rotate >/dev/null 2>&1 && echo $?
0
Qu'est-ce qui pourrait expliquer ce message? service:
not found
Réponses:
Pouvez-vous écrire le contexte de /etc/logrotate.conf ou le fichier avec les règles de rotation du journal ngix?
Dans rh / centos, 'service' est dans / sbin / service mais dans debian / ubuntu, dans '/ usr / sbin / service. Avez-vous un chemin absolu en pré ou en post rotation?
la source