bash Script wird nicht richtig ausgeführt über cronjob

  • Hallo liebe Community,

    ich versuche einen openVPN watchdog ans laufen zu bringen. Habe mir ein kleines bash Script geschrieben, welches schaut, ob das tun0 interface da ist. Wenn ja, passiert nichts. Wenn nein, wird der Dienst neu gestartet.
    Führe ich das Script direkt aus, funktioniert alles wie gewünscht. Trage ich es als cronjob ein, wird es laut log zwar ausgeführt, startet aber den Dienst nicht neu.
    Kann mir jemand sagen, was ich übersehen habe?


    nano openVPN_watchdog.sh:

    Bash
    #!/bin/bash
    if (ifconfig | grep tun0 > 0);
    then
            echo "tun0 interface gefunden"
    else
            echo "tun0 interface nicht gefunden"
            service openvpn restart
            echo "Dienst wurde neugestartet"
    fi

    sudo crontab -e:

    Code
    * * * * * /home/pi/openVPN_watchdog.sh >> /home/pi/openVPN_watchdog.log

    nano openVPN_watchdog.log

    Code
    tun0 interface nicht gefunden
    Dienst wurde neugestartet
    tun0 interface nicht gefunden
    Dienst wurde neugestartet
    tun0 interface nicht gefunden
    Dienst wurde neugestartet
  • bash Script wird nicht richtig ausgeführt über cronjob? Schau mal ob du hier fündig wirst!

  • Hallo ThoThoThomas,

    Du kannst mit folgendem Linux-Kommando herausfinden, wo = in welchem Verzeichnis ein Kommando gespeichert ist.

    Code
    which service

    Dies ist deswegen wichtig, weil Du zu dem Zeitpunkt, wenn ein Cronjob gestartet wird, nicht davon ausgehen kannst, dass der Pfad der ausführbaren Programme bereits bekannt ist.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!