uwcron: Cron für das fun_plug

Seit einiger Zeit werde ich immer wieder gefragt, wie man cron-einträge in den NAS Geräten mit fun_plug dauerhaft speichern kann. Das ist nicht so einfach möglich, da die Geräte nach jedem Neustart die crontab zurücksetzen. Daher müsste man nach jedem Neustart die Einträge neu setzen. Ich habe daher ein kleines Script entwickelt, was das für das fun_plug automatisiert.

Werbung


Das Package mit dem Namen „uwcron“ ist über mein Repository verfügbar:

slacker -UaA uli:uwcron
[[ -f /ffp/start/uwcron.sh.new ]] && mv /ffp/start/uwcron.sh.new /ffp/start/uwcron.sh

Wenn dies installiert ist, kann es losgehen. Die Konfigurationsdateien für deine cron-definition müssen dann unter /ffp/etc/cron.d/ abgelegt werden. Dies kann beispielsweise so aussehen:

*/5  * * * * /tmp/uwfancontrol.sh

Wenn man alle Konfigurationsdateien angelegt hat, so kann man uwcron aktivieren. Das geht wie bei allen anderen Diensten:

chmod a+x /ffp/start/uwcron.sh
/ffp/start/uwcron.sh start

Die Einträge müssten nun in der crontab auftauchen:

crontab -l

Würde man nun neustarten, so wären die Einträge aus den Dateien in /ffp/etc/cron.d/ in der crontab von root enthalten. Hat man nur eine Änderung an einer Konfigurationsdatei gemacht und möchte diese übernehmen lassen, so reicht ein neustart des Service:

/ffp/start/uwcron.sh restart

Fragen dazu?

Veröffentlicht von

Uli

IT-Nerd und Admin

20 Gedanken zu „uwcron: Cron für das fun_plug“

  1. Order /ffp/etc/cron.d/ ist bei mir leer. Lege ich ein Script darin ab oder muss ich hier eine Datei erzeugen, die den crontab enthalten soll?

    Wenn ich crontab -l aufrufe erhalte ich folgende Ausgabe „*/10 * * * * /usr/sbin/rlog /var/log/user.log 800“, dieser Eintrag ist allerdings in /var/spool/cron/crontabs gespeichert!

    Sorry, blick nicht so richtig durch 🙁

  2. Hallo!

    Als erstes:
    Deine Arbeit zu „fun_plug“ finde ich echt toll und auch sehr gut gelungen. Ich selber habe eine DNS320L und es funktioniert alles echt gut. Zwar habe ich noch nicht alles durch, aber ein paar Fragen habe ich schon. Vielleicht sind diese eh schon bekannt und wurden in anderen Foren diskutiert.

    .) Corntab:
    Seit ich „uwcron“ installiert habe kommt es mir vor, dass der Prozess „crond“ zwei mal gestartet wird.

    # ps -A | grep „cron“
    1350 ? 00:00:00 crond
    1462 ? 00:00:00 crond

    Dadurch werden die Jobs doppelt gestartet.
    Ich habe jetzt ein Prozess „gekillt“. Hast Du vielleicht eine Idee woran das liegen könnte?

    .) Kernel: Screen
    Was mir fehlt ist das Programm „screen“.

    .) Environment selber definieren
    Mir ist aufgefallen, dass alle Deine Skripts, die beim Hochfahren gestartet werden, im Verzeichnis „/ffp/start“ sind. Jetzt möchte ich diverse Einstellungen und Environment-Variablen zusätzlich definieren. Ich habe mir gedacht, dass ich ein Bash-Skript schreibe und diese auch in dieses Verzeichnis gebe und es mit
    „chmod a+x /ffp/start/.sh“ definieren. Damit müsste auch mein Skript starten. Ist dies korrekt?

    .) Programmieren
    Hast Du vielleicht eine Todo-Seite erstellt, die erklärt wie man selber Programme für den DSN320L schreibt. Vielleicht ein „Hello World“-Programm in C oder Pascal.

    Vielen Dank,
    Wolfgang

  3. Hallo!

    ahja was mir noch fehlt ist: Mail senden

    Ich habe mir ein Skript geschrieben, dass mir in der Nacht die Daten-Verzeichnisse mittels rsync „wegsichert“. Jetzt möchte ich, dass ich die Log-Datei per Mail zugesendet wird. Nur finde ich kein SMTP-Mail-Programm. Gibt es dieses?

    Vielen Dank,

    Wolfgang

    1. Mails Senden funktioniert bei meinem DNS320L von Hause aus, kann man über das Webinterface einstellen. Wenn ich das tue kann ich hinterher via

      send_gen_mail -m message -s subject -r e@mail.com

      Mails mit der Konfiguration des Webinterfaces versenden. Dateien lassen sich hier ebenfalls anhängen. einfach mal

      send_gen_mail -h

      aufrufen. =)

  4. Hallo wieder,

    Ich wollte auf meinem DNS320L einen Cronjob anlegen der meine externe IP ermittelt und mir via Mail zusendet.

    die IP ermittle ich via

    curl "http://www.networksecuritytoolkit.org/nst/cgi-bin/ip.cgi"

    Das funktioniert auch gut.

    Mein entsprechendes Cronscript liegt im homeordner von root und wird im crontab via

    sh cronscript.sh

    ausgeführt. Ausführung funktioniert. in der Mail die an michgeht steht alles bis auf der Inhalt von

    curl "http://www.networksecuritytoolkit.org/nst/cgi-bin/ip.cgi"

    Eine Idee warum die IP nicht ermittelt werden kann wenn das Script via CronJob ausgeführt wird?

    hier das gesamte Script:

    #!l/bin/bash
     
    date >> /ffp/home/root/daily_mail_contend.txt
     
    curl "http://www.networksecuritytoolkit.org/nst/cgi-bin/ip.cgi" >> /ffp/home/root/daily_mail_contend.txt
     
    send_gen_mail --msg_file /ffp/home/root/daily_mail_contend.txt -s IP -r e@mail.com
    exit 0

    Gruß hilbi

    1. @hilbi
      cron setzt standardmäßig keine Umgebungsvariablen, also auch keine $PATH
      am einfachsten wäre es dir echo $PATH auf der console ausgeben zu lassen und dann

      PATH='....'

      vor deine Befehle zu schreiben. Außerdem:

      >#!l/bin/bash

      typo?

  5. Hallo,

    zunächst einmal möchte ich mich für die tollen Tipps, Ideen und Tutorials rund um das Thema NAS bedanken – einfach super!

    Leider habe ich aber nun ein Problem mit CRON, bei dem ich nicht weiterkomme:
    Ich habe uwcron nach dieser Anleitung eingerichtet und einen Cron-Job eingerichtet.
    crontab -l zeigt den Job an.

    Leider scheint der Job jedoch nicht zeitgesteuert ausgeführt zu werden – das Skript läuft nicht an…
    … wird das Skript direkt auf der Shell gestartet, funktioniert alles tadellos…
    … auch ein einfacher „touch“ als „Smoke-Test“ war nicht erfolgreich… 🙁

    Muss noch etwas gestartet werden, damit CRON wirklich zeitgesteuert abarbeitet?
    Tipps und Hinweise willkommen… 😉

    Vielen Dank im Voraus!

    Ronny

  6. Hallo Uli,
    vielen Dank für die detailierte Beschreibung zu uwcron.
    Ich setze das Plugin bei meinem DNS 320L ein, allerdings verschwinden nach geraumer Zeit die Einträge in der crontab, ohne das das Geräte neu gestartet wurde!
    Woran kann das liegen???
    Gruß,
    Sven

    1. Hi Sven,

      bei mir tritt der Fehler auch auf (DNS-345). Jeden Tag 8 Uhr und 20 Uhr setzt es die Cron Jobs zurück. Vermute derzeit, dass es mit der automatischen Ein- und Ausschaltfunktion zu tun hat. Ich teste das aktuell aus.
      Das Problem umgehe ich derzeit ziemlich unprofessionell indem um 7:55 Uhr bzw. 19:55 Uhr ein cron-Job startet, der 10 Minuten wartet und dann einen „uwcron.sh restart“ ausführt.

      1. Hi Hampelmann,

        wie hast du denn rausbekommen, wann die Cron Jobs zurückgesetzt werden?
        Bei mir scheinen es nämlich andere Zeiten zu sein…

        Gruß,

        Sven

          1. Ich habe den Fehler bei mir gefunden. Hatte nach einem Firmwareupdate ein bisschen Gehirnfasching und über die Woche gesehen einmal mehr ein- als ausgeschalten, mittels des DLink Webinterface. Seitdem der Logikfehler behoben ist (ca. 4 Wochen), funktioniert es wieder fehlerfrei.

            1. Hallo,

              ich verstehe leider auch nicht ganz genau was des Rästsels Lösung ist.
              Was für ein Logifehler?

              Gruß,

              Sven

  7. Hallo. Ich habe den gleichen Fehler, dass die Croneinträge verschwinden.
    Würde auch gerne das Problem beheben. Wo finde ich denn einen Ninweis, ob ich im Dlink webinterface etwas entsorechendes stehen habe?
    Sonst muss eben auch die Holzhammermethode 🙂

    Gruß Kai

  8. Dear Uli,

    Sorry for me not being able to write in German.
    Congratulations on the very fine work.
    I’ve been following these tutorials so send e-mail with attachment from DL-320 but I must say without success. I’ve managed to send e-mail with msmtp (w/o attachment of course. With mutt no success. Either got Error opening terminal: xterm or No space left on device (errno = 28) with different try outs. Also tried send_gen_mail. So my question is what is easiest way to send e-mail with attachment from DL-320 via cron ?

    Thank you.

    Best

  9. Hallo Uli
    Besten Dank erstmal für die tolle Arbeit.

    Ich benutze zur Zeit ffp 0.7 auf einem Zyxel NAS 310 und habe einige Cron-Jobs eingerichtet.
    Komischerweise die Jobs scheinen nicht richtig getriggert zu sein (manchmal werden sie ausgeführt, manchmal nicht) – es handelt sich um ein rync basiertes Backup.

    Könntest du mit bitte sagen wo / wie ich mir ein log von uwcron anschauen könnte? Ich will nämlich schauen ob der job überhaupt nicht ausgeführt wird, oder ob es (auf Grund eines Fehlers) nicht korrekt läuft. Die Befehle laufen vom Shell problemlos….

    Danke für deine INputs!

    1. Habe wahrscheinlich den Fehler gefunden –
      man muss „rsync“ über „/ffp/bin/rsync“ aufrufen, ssh über /ffp/bin/ssh. Nun funktioniert es wieder…
      Danke und Gruss

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.