Cronjob um IPv6 Adresse zuzumailen

  • Hallo liebe Community,
    Ich versuche einen Cron-job ans laufen zu bekommen, mit dem mir mein Pi eine Mail schickt, sobald sich seine IP-Adresse geändert hat. Das Skript läuft per Shell einwandfrei, nur der Cronjob tut Nichts. Hier die Infos:

    Ausgabe von Crontab -l:


    Dies sollte jede Minute das sh-Skript ausführen. Die Shell hab ich auf Bash gesetzt, PATH-Variable brauche ich nicht, da ich den absoluten Weg zum Skript angegeben habe.

    Hier mein sendMail.sh. Ausführen über die Kommandozeile funktioniert ! (Habe den Mailteil auskommentiert, damit mein Postfach nicht zugespammt wird)

    zur PATH-Variable (Wo die ganzen Befehle sind):

    In der Datei /var/log/syslog steht jede Minute der folgende Eintrag:

    Zitat

    Nov 23 18:22:01 raspberrypi CRON[17918]: (pi) CMD (/home/pi/scheduledTasks/regularIPMail/sendMail.sh)

    Rechte bei der Skriptausführung (chmod 777):

    Zitat

    pi@raspberrypi:~/scheduledTasks/regularIPMail $ ls -l
    total 4
    -rwxrwxrwx 1 pi pi 493 Nov 23 17:44 sendMail.sh

    Ich habe so langsam keine Idee mehr, warum der Cronjob nicht läuft. Wenn ich das Skript über die Shell ausführe, dann wird sofort die Datei oldIP.txt mit der IPv6 Adresse erstellt. Falls die Datei schon existiert bekomme ich den Output "No IP change detected" und wenn ich einen Fehler in oldIP.txt einbaue wird der auch erkannt. Nun ist die oldIP.txt gelöscht, doch es wird keine Neue erstellt. (obwohl der Cronjob läuft, sieht man ja am syslog). Ich habe vermutlich irgendwas mit der Pfadvariablen übersehen, aber ich komm einfach nicht mehr weiter.
    LG treecake

  • Zitat
    Code
    oldIpv6Address=$(cat oldIP.txt)


    $PWD wird sich unterscheiden bei cron und interaktiver shell, nenne den Pfad zu oldIP.txt

    oops, zu lahm, sry

    Wenn du nichts zu sagen hast, sag einfach nichts.

    Einmal editiert, zuletzt von llutz (23. November 2016 um 18:45)

  • Hey,
    ja das hatte ich übersehen. Danke schonmal dafür. Allerdings passiert noch immer Nichts. Eingefügt habe ich jetzt:
    oldIpv6Address=$(cat /home/pi/scheduledTasks/regularIPMail/oldIP.txt)
    Ausführen per Bash funktioniert immer noch, also kein Tippfehler. Was könnte es noch sein ?

  • Oh nein. Ich hab die IP-Adresse immer in oldIP.txt geschrieben, ohne absoluten Pfad :wallbash:
    Wurde dann im Homeverzeichnis angelegt. Vielen dank für die viele Hilfe :thumbs1: Irgendeine blöde Kleinigkeit musste es ja sein ^^
    In dem Sinne noch einen schönen Abend =) (Das anlegen der cron.log Datei ist übrigens ein netter Trick, der mir gar nicht bewusst war)
    LG Treecake

  • Wenn ein Programm Ausgaben erzeugt, und durch den Cron gestartet wird, landen die Aufgaben dieses Programm, so man keine Umleitung der Ausgaben (siehe oben) macht, als mail beim User, unter dem der Cronjob läuft.

    Also immer mal in den Mails des Users PI, und eventuell auch root, nachsehen.
    Denn damit kann man sich schon mal das Dateisystem vollnageln.

    Im Übrigen kann man die Log-Ausgabe noch verbessern in

    Code
    >> /home/pi/cron.log  2>> /home/pi/cron.log


    Damit auch die Fehlerausgabe in einer Logdatei landet.
    Hier dann daran denken, dass diese Datei bei Ausgaben immer größer wird, was wiederum das Dateisystem belastet. ;)

    Ist man nur interessiert, was oder ob etwas bei einem lauf ausgegeben wird, nimmt man ein einzelnes Weiterleitungszeichen >.

    Computer ..... grrrrrr

  • ...oder einfach sämtliche Ausgaben entweder

    a) vom Script selbst handhaben lassen.
    b) sämtliche mögliche Ausgaben und Fehlermeldungen in den Mülleimer von Linux umleiten: >/dev/null 2>&1

  • Code
    >> /home/pi/cron.log  2>> /home/pi/cron.log


    Damit auch die Fehlerausgabe in einer Logdatei landet.
    Hier dann daran denken, dass diese Datei bei Ausgaben immer größer wird, was wiederum das Dateisystem belastet. ;)

    Code
    &>>/home/pi/cron.log

    spart ein paar Tastenquälereien :lol:

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!