Dreambox 7020HD / Cronjob

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Dreambox 7020HD / Cronjob

      Hallo zusammen,

      ich habe eine Frage zum Cronjob - ich möchte auf Nummer sicher gehen, daß ich das korrekt mache. Ich habe das "cron" Plugin installiert. Jetzt gehe
      ich via telnet auf die Box & füge den Cronjob wie folgt ein:

      */2 * * * * /usr/bin/wget -q -O /dev/null exampl.com/read_itunes_random.php

      Speichern - fertig! Ist das so korrekt und kann ich was optimieren?

      Wenn ich jetzt mit FTP auf die Box gehe, finde ich im Ordner "cron" eine Logdatei. Diese sieht wie folgt aus:

      root (01/14-12:11:06-6482) BEGIN EDIT (root)
      root (01/14-12:11:09-6482) REPLACE (root)
      root (01/14-12:11:09-6482) END EDIT (root)
      root (01/14-12:11:13-6488) LIST (root)
      root (01/14-12:12:00-6514) CMD (/usr/bin/wget -q -O /dev/null exampl.com/read_itunes_random.php)
      root (01/14-12:14:00-6582) CMD (/usr/bin/wget -q -O /dev/null exampl.com/read_itunes_random.php)
      root (01/14-12:16:00-6647) CMD (/usr/bin/wget -q -O /dev/null exampl.com/read_itunes_random.php)

      Allerdings habe ich mehrere Cronjobs zu erledigen und ich habe Angst, daß dadurch die Box "voll" läuft, da die Datei immer größer wird.
      Wie kann man unterbinden, daß was in diese Datei geschrieben wird?

      Würde mich über jede Hilfe freuen!
    • add one line, last one in example :)
      /cron/tabs/root

      Brainfuck-Quellcode

      1. # Min HH Date Month wDay command to be executed
      2. # | | | | |
      3. # | | | | |
      4. # | | | | +----- day of week (0 - 6) (Sunday=0)
      5. # | | | +------------- month (1 - 12)
      6. # | | +--------------------- day of month (1 - 31)
      7. # | +----------------------------- hour (0 - 23)
      8. # +----------------------------------- min (0 - 59)
      9. #
      10. PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
      11. #30 6,16 * * * /usr/bin/camdctrl switch oscam_cam.emu
      12. #* * * * * /usr/script/oscam_move_log-prev.sh
      13. #1 * * * * /usr/script/move_recordings_from_CF.sh
      14. #57 * * * * /etc/init.d/rdate start
      15. #50 1 * * 1 /usr/script/backup_E2_userscript.sh
      16. #50 1 * * 6 /usr/script/zap_to_every_transponder.sh>/tmp/zap_to_every_transponder.log
      17. #0 1 * * * wget -O /dev/null -q http://localhost/web/powerstate?newstate=5
      18. #0 6 * * * wget -O /dev/null -q http://localhost/web/powerstate?newstate=5
      19. 0 0 * * * [ -e /cron/log.prev2 -a -e /cron/log ] && mv /cron/log.prev2 /cron/log.prev3; [ -e /cron/log.prev -a -e /cron/log ] && mv /cron/log.prev /cron/log.prev2; [ -e /cron/log ] && mv /cron/log /cron/log.prev; [ ! -e /cron/log ] && /etc/init.d/cron restart
      Alles anzeigen
      dm7080sstt; 2x dm8000sstt; dm7020s <- Diseq1x4 <- 3x Diseq1x10 <-
      Dishes:
      1.8m 36E;28E;23E;19E;16E;13E;7E
      1.6m 42E;36E
      1.0m 10/9E;5E;1W;8W
      1.0m 15W;22W;30W
      1.1m 4/5W;12W;18W;24W
      1.1m 53E;60E
      1.0m 75E
      TVs: Philips 46pfl9707s; Philips 42pfl9703h
    • Fred Bogus Trumper schrieb:

      wget -q -O /dev/null

      jagt das Ergebnis ins Nirvana, d.h. es wird nichts (in den Flash) geschrieben, sondern einfach verworfen

      Was willst du mit dem Cronjob eigentlich bezwecken? Wird über die url einne Art Command gesendet oder willst du mit den Inhalt der .php auf der Box auswerten?


      Ja, es wird ein Command gesendet - auf der Box muß mit dem Befehl nichts passieren. Ist das dann korrekt?

      Kann man das schreiben im log file unterbinden?
    • Ich verwende das vixie-cron vom feed nicht (mehr), aber vielleicht kann dir jemand, der vixie-cron nutzt, sagen, ob das logfile periodisch gesäubert wird oder ob man das in den configs einstellen kann.

      Du könntest anstatt vixie-cron vom feed das vorinstallierte busybox-cron verwenden, dass loggt nach /var/log/messages, und die /var/log/messegas wird durch eine Art logrotate vom kernel periodisch gesäubert, damit der Flash nicht vollläuft.

      Aber da muss man nach der vixie-cron Deinstallation manuell nachhelfen, um das busybox-cron wieder zu aktivieren - sofern sich in der vixie-cron Deinstallationsroutine nichts geändert hat.





      .
    • Okay, vielleicht hat jemand einen Rat. Bei mir lief das schon in der Vergangenheit und ich hatte nie Probleme. Ich musste dann aber die Box neu fashen und ich hatte die Settings/Einrichtung des Cronjobs nicht mehr.

      Wenn jemand einen Rat hat, wäre ich sehr dankbar.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von CurrySven ()

    • ich hab' mir mal spaßhalber den Stick rausgesucht, auf dem ein OE1.6. NN² für die DM800SE Installiert ist, dass ziehmlich lange vom USB-Stick gebootet mit vixie-cron lief:

      Scheinbar gibt es kein vixie-cron logrotade oder ähnliches - wenn im OE2.0 daran nichts geändert wurde.

      /cron/log hat eine Größe von 105.9MB und 1769185 Zeilen - bei 4 cronjobs/Minute sind das ~ 307 Tage logging (die Box lief 24//7 mit ein paar reboots)
      1. Eintrag: 9.8.
      letzer Eintrag 29.10 ein Jahr später (liefen ja nicht immer 4 crontabs/Minute)
      Wenn das Image im Flash gelaufen wäre, wäre der recht bald geplatzt ...


      bei einem crontab jede Minute kommst du auf etwa 32MB in 365 Tagen (Daumen mal PI - je nach Länge des Logeintrags = crontab). Bei einem crontab alle 2 Minunten auf ca. 16MB (Milchmädenenrechnung)
      Da flasht du eher die Box neu, bevor der cronlog den Flash der DM7020HD zum Platzen bringt - bei DM800HD/SEv1 bzw. DM500HD V1 würde ich mir da eher Sorgen machen.

      Allerdings kenne ich in 6 Jahren Präsenz hier im Forum keiinen Fall, wo das ein Thema war ....


      Du kannst auch allle paar Wochen /cron/log manuell löschen oder per script+crontab ein logrotate basteln, dass bei Erreichen einer bestimmten Zeilenanzahl oder Dateigröße /cron/log löscht oder nach /cron/log.0 verschiebt, und beim nächsten Erreichen des Grenzwertes /cron/log.0 löscht und /cron/log nach wieder nach /cron/log.0 verschiebt usw ...

      oder du stoppst cron, verschiebst /cron/log nac /tmp und ersetzt das file durch einen symlink zeigend auf /tmp/cron.log
      mv /cron/log /tmp/cron.log && ln -sf /tmp/cron.log /cron/log

      und startest cron wieder

      dann wird der log nach /tmp/cron.log geschrieben und ist nach einem reboot wieder leer ....

      ansehen kanns du ihn auf zwei Arten
      cat /cron/log
      cat /tmp/cron.log

      Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von Fred Bogus Trumper ()

    • Fred Bogus Trumper schrieb:

      oder du stoppst cron, verschiebst /cron/log nac /tmp und ersetzt das file durch einen symlink zeigend auf /tmp/cron.log
      mv /cron/log /tmp/cron.log && ln -sf /tmp/cron.log /cron/log


      Super! Vielen Vielen Dank! Ich habe es jetzt so gelöst. Denke, daß ist die sinnvollste Variante. Alternativ könnte man ja auch einen Cronjob machen, der jede Nacht die Datei leer macht, oder?!
    • wenn du den log nicht benötigst, verlinke den log einfach nach /dev/null - dann brauchst du gar nichts löschen und ersparst dir den cronjob - ist aber ungetestet

      /etc/init.d/cron stop
      rm -rf /tmp/cron.log
      rm -rf /cron/log && ln -sf /dev/null /cron/log
      /etc/init.d/cron start


      das ist aber mit der Brechstange. Eleganter wäre es per cron ein logrotate einzurichten oder per cron den Log einfach periodisch löschen.

      Alternativ das busybox cron verwenden, das logged wie gesagt nach /var/log/messages - da brauchst du dich um nichts kümmern.
      cron liegt ja am hauptsächlich aus dem Grund am Newnigma² Feed , weil das busybox-cron von DMM ewig und drei Tage buggy war.


      Kannst ja mal versuchen:
      1. cron deinstallieren
      opkg remove cron

      2. /usr/bin/crontab wieder in die busybox verlinken, der symlink wird bei der der Installation von cron mit dem crontab binary überschrieben und bei der Deinstallation von cron nicht wieder hergestellt
      cd /usr/bin
      ln -sf ../../bin/busybox crontab


      3. die crontabs von vixie-cron auf das busybox-cron übertragen
      cat /cron/tabs/root|grep -v "^#" >> /etc/cron/crontabs/root

      mit crontab -e editieren, wenn gewünscht

      4: starten
      /etc/init.d/busybox-cron start

      5. damit das busybox cron beim booten automatisch gestartet wird (hat DMM per default deaktivert), einmalig das ausführen:
      update-rc.d busybox-cron defaults

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Fred Bogus Trumper ()

    • CurrySven schrieb:

      Sorry, i don´t understand what you mean.

      last line in example contains several commands which executed every day at midnight
      1. move(rename) two days old log file as tree days old
      2. move(rename) one day old log file as two days old
      3. move(rename) current log file as one day old
      4. restart cron
      0 0 * * * [ -e /cron/log.prev2 -a -e /cron/log ] && mv /cron/log.prev2 /cron/log.prev3; [ -e /cron/log.prev -a -e /cron/log ] && mv /cron/log.prev /cron/log.prev2; [ -e /cron/log ] && mv /cron/log /cron/log.prev; [ ! -e /cron/log ] && /etc/init.d/cron restart


      first two commands can be cut, then you will have current log and yesterday's
      dm7080sstt; 2x dm8000sstt; dm7020s <- Diseq1x4 <- 3x Diseq1x10 <-
      Dishes:
      1.8m 36E;28E;23E;19E;16E;13E;7E
      1.6m 42E;36E
      1.0m 10/9E;5E;1W;8W
      1.0m 15W;22W;30W
      1.1m 4/5W;12W;18W;24W
      1.1m 53E;60E
      1.0m 75E
      TVs: Philips 46pfl9707s; Philips 42pfl9703h