Comment l'exécution de logrotate peut-elle avoir pour résultat «service: non trouvé»?

0

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 nginxet syslog, respectivement service nginx rotate >/dev/nullet 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

PLNech
la source
Vous manquez le chemin?! Essayez / usr / sbin / service
JohannesM le

Réponses:

0

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?

SiD
la source
1
J'ai ajouté les règles de rotation du journal, qui sont les valeurs par défaut du package. Comme vous pouvez le constater, il n'y a pas de chemin absolu.
PLNech