2017-09-13 3 views
0

Ich habe ein Skript, das ich von einem Cron-Job aufrufen. Das Skript istService Neustart erfolgt nicht bei Verwendung von Cron

#!/bin/bash 

python /home/ubuntu/gateway-haproxy-config.py | tee /etc/haproxy/haproxy.cfg.new 
DIFF=$(diff /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.new) 

if [ "$DIFF" != "" ] 
then 
    mv /etc/haproxy/haproxy.cfg.new /etc/haproxy/haproxy.cfg 
    service haproxy restart 
else 
    echo "unmodified" 
fi 

Das Skript genau wie erwartet funktioniert, wenn ich es von einem Shell-Prompt ausführen.

ich es als cron-Job installiert, wie (für root sudo crontab -e) folgt:

* * * * * cd /home/ubuntu && ./gateway-config-cron 

Wenn die cron läuft, wird das Skript erfolgreich eine neue Konfigurationsdatei schreibt, tut das Diff und sogar ersetzt die alte mit dem Neuen, wenn das Diff nicht leer ist.

Die service haproxy restart passiert nie, wenn als Cron-Job ausgeführt wird. Ich muss den Dienst manuell neu starten.

Antwort

0

Dies könnte ein Problem mit dem Pfad sein Ich konnte es funktioniert wie erwartet, indem Sie den vollständigen Pfad zu service.

#!/bin/bash 

python /home/ubuntu/gateway-haproxy-config.py | tee /etc/haproxy/haproxy.cfg.new 
DIFF=$(diff /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.new) 

if [ "$DIFF" != "" ] 
then 
    mv /etc/haproxy/haproxy.cfg.new /etc/haproxy/haproxy.cfg 
    /usr/sbin/service haproxy restart 
else 
    echo "unmodified" 
fi 
Verwandte Themen