Voraussetzungen
Busybox ist bereits installiert. Mindestens folgender (oder ähnlicher) Code ist bereits in der debug.cfg enthalten, siehe Menüpunkt „Bessere Busybox“. Ich muss hier das Rad nicht neu und nochmals erfinden. 😉
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
HDD='Hitachi-HTS543216L9A300-01' # ACHTUNG: unbedingt anpassen! HDD_ABSOLUT='/var/media/ftp/'$HDD TEMP=/var/tmp while ! [ -d $HDD_ABSOLUT ] ; do sleep 5; done cd $TEMP # Bitte nur eine der unteren Zeielen beutzen d.h. auskommentieren # cp $HDD_ABSOLUT/busybox $TEMP # ODER # cp $HDD_ABSOLUT/busybox_v1.21.1_mips $TEMP/busybox chmod +x busybox |
wenn Zugriff via SSH erwünscht, dann noch SSH (dropbear) installieren, aber nicht unbedingt nötig.
Installation
1. Als erstes erstellen wir das Verzeichnis „/var/media/ftp/cron“:
1 |
mkdir /var/media/ftp/cron |
2. Nun erstellen wir im Verzeichnis „/var/media/ftp/cron“ die Datei „crontab“ mit folgendem Inhalt:
1 2 3 4 5 6 |
SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin:/tmp/var MAILTO="" HOME=/ # Dies ist ein Kommentar |
3. Wir tragen konkrete Ereignisse ein, die von cron durchgeführt werden sollen.
Hier sind 3 kleine Beispiele gezeigt. Es folgen hier ein ping nach dem Neustart der Fritz-Box, und ein ping jede Minute und ein ping alle 5 Minuten.
Ergänzung: Noch jede Stunde(stündlich), um 0 Uhr und minütlich ab 22 Uhr eine Stunde lang.
Bitte selbst durch eigene Befehle die benötigt werde ergänzen.
Es ist nur ein Beispiel für den Aufruf. Es geht noch wöchentlich Monatlich Jährlich. An bestimmen Wochentagen und an bestimmten Tagen. z.B. Nur Freitags, oder am 13. eines Monats und auch am Freitag den 13. eines Monats. Ihr könnt mal experimentieren.
Weitere Informationen und Beispiele sucht Ihr im Internet und in der manpage von crontab.
Hier eine komplette crontab zum kopieren. Sie ist auch bereits in die variante Fritzbox ohne Speicher integriert.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin:/tmp/var MAILTO="" HOME=/var/tmp # Dies ist ein Kommentar # Hier unten weitere "crons" eintragen @reboot ping -c 1 web.de * * * * * ping -c 1 gmx.de */5 * * * * ping -c 1 google.com # Jede Stunde 0 * * * * ping -c 1 gmx.de # Um 0 Uhr 0 0 * * * ping -c 1 gmx.de # Minütlich ab 22 Uhr für 1 Stunde * 22 * * * ping -c 1 gmx.de # * * * * * hier weiteren Befehl oder Script eintragen und auskommentieren # Hier ist das Ende der Datei die erstellt wird. Die Datei heißt in /var/tmp/crontab |
WICHTIG: Um eventuelle Ausgaben der Programme sollte man sich kümmern. Damit ist gemeint, Ausgaben der Programme oder scripte in Dateien umleiten oder ähnliches. Dasselbe gilt auch für eventuelle Fehlermeldungen.
4. Hier folgt nun der Teil, der in die debug.cfg hineinkommt.
Erläuterungen:
Zunächst wird der cron daemon gestartet.
1 |
busybox crond -c /var/media/ftp/cron/ |
Danach erfolgt der start von crontab. Fertig.
1 2 3 4 5 |
mkdir "/var/media/ftp/cron"/cron busybox crontab -c "/var/media/ftp/cron/" "/var/media/ftp/cron"/cron/crontab #/tmp/busybox crontab -c /mein/direkter/pfad/cron/ /mein/direkter/pfad/cron/crontab -l list (oder -e # für edit EDIT: -e funktioniert leider nicht richtig) |
WICHTIG: nach einer Änderung der cronab-datei muss entweder neu gestartet werden, was aber sehr Zeitaufwändig wäre, oder es wird crontab einfach nochmals durchgeführt, dabei auf die Pfade achten.
ZU BEACHTEN: Es werden hier eigentlich nur 2 codezeilen hinzugefügt, zur bereits bestehenden Busybox-Installation. Bei Fritzbox ohne Speicher, wird die crontab aus der debug.cfg heraus erzeugt. Änderungen im Sinne von cronzeilen ändern, werden in der debug.cfg direkt eingetragen. Dies gilt dann für den nächsten Start der Box. Im laufenden betrieb sollte die /var/tmp/crontab geändert werden. Hier wird aber nichts automatisch zurück in die debug.cfg geschrieben. Also zum testen in die /var/tmp/crontab und wenns fertig ist, in die debug.cfg eintragen.
Code für Fritz!Box ohne USB-Speicher
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
HDD='Hitachi-HTS543216L9A300-01' # ACHTUNG: unbedingt anpassen! HDD_ABSOLUT='/var/media/ftp/'$HDD TEMP=/var/tmp while !(ping -c 1 www.google.de); do sleep 5; done cd $TEMP # [...] siehe Menüpunkt <a href="/modification/busybox/">"Bessere Busybox"</a> chmod +x busybox # ------------------------------------------------------------------- # Hier beginnt der zu ergänzende Teil # ---------------- ab hier kopieren --------------------------------- # Erstellen der crontab im tmp Verzeichnis cat << EOF >> $TEMP/crontab SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin:/tmp/var MAILTO="" HOME=/var/tmp # Dies ist ein Kommentar # Hier unten weitere "crons" eintragen @reboot ping -c 1 web.de * * * * * ping -c 1 gmx.de */5 * * * * ping -c 1 google.com #jede Stunde 0 * * * * ping -c 1 gmx.de #um 0 Uhr 0 0 * * * ping -c 1 gmx.de # minütlich ab 22 Uhr für 1 Stunde * 22 * * * ping -c 1 gmx.de # * * * * * hier weiteren Befehl oder Script eintragen und auskommentieren # Hier ist das Ende der Datei die erstellt wird. Die Datei heißt in /var/tmp/crontab EOF $TEMP/busybox crond -c $TEMP/ $TEMP/busybox crontab -c $TEMP/ $TEMP/crontab |
Code für Fritz!Box mit USB-Speicher
Ihr müsst noch die crontab erstellen. Oder zumindest von oben aus Punkt 3. in eure crontab kopieren!!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
HDD='Hitachi-HTS543216L9A300-01' # ACHTUNG: unbedingt anpassen! HDD_ABSOLUT='/var/media/ftp/'$HDD TEMP=/var/tmp while ! [ -d $HDD_ABSOLUT ] ; do sleep 5; done cd $TEMP # [...] siehe Menüpunkt <a href="/modification/busybox/">"Bessere Busybox"</a> chmod +x busybox # ------------------------------------------------------------------- # Hier beginnt der zu ergänzende Teil # ---------------- ab hier kopieren --------------------------------- busybox crond -c "$HDD_ABSOLUT"/ busybox crontab -c "$HDD_ABSOLUT/"cron "$HDD_ABSOLUT"/cron/crontab |