cronjobs / crontab auf der 107+

Status
Für weitere Antworten geschlossen.

juergen@net

Benutzer
Mitglied seit
28. Mai 2008
Beiträge
323
Punkte für Reaktionen
0
Punkte
0
Hallo,

gibt es irgendwo eine Anleitung wie man bei der 107+ am besten mit cronjobs / crontab umgeht?

Habe leider nur oberflächliches Linux-Halbwissen. Die Suche habe ich schon bemüht. Habe gefunden dass crontab auf
/etc/crontab
ist.

  • Tabelle editieren
    Kann ich die Tabelle direkt editieren oder ist die geschützt? Noch lieber würde ich sie überschreiben, da ich viele Einträge zu machen habe und der VI nicht ein bester Freund ist...

    Antwort:
    cp /volume1/public/crontab /etc/
    Hier mit Editor bearbeiten und wieder abspeichern und wieder zurückkopieren
    ACHTUNG: Editor muss Tabs erzeugen, keine Leerzeichen zwischen den Zeitangaben, ansonsten fehlt die Zeile hinterher!
    cp /volume1/public/crontab /etc/
    cat /etc/crontab
  • Eine oder 2 Tabellen?
    Hier und da habe ich etwas von 2 Tabellen und ggf. 2 crondaemons gelesen. Passt die /etc/crontab für die 107+ oder wird die vom System wieder überschrieben?

    Antwort:
    mit dem Editieren obiger Datei funktionmiert es bei mir
  • Cron stoppen / starten ohne die ganze DS neu zu starten
    Wie kann ich den cron-Daemon stoppen und neu starten, damit er meine Änderungen übernimmt, ohne dass ich gleich die ganze Box neu starten muss?
    Leider noch keine Idee, ich habe neu gestartet
  • Nach Neustart
    Was passiert nach Neustart der Box? Wird die crontab überschrieben oder kann ich das verhindern?
    Antwort:
    Bei mir wird durch Neustart nichts zerstört
  • Nach Verändern des Timeserver-Eintrags durch Web-Interface
    Habe in meiner Crontab den Timeserver-Eintrag gesehen, den ich per Webinterface beauftragt habe (der wird unsinnigerweise um 00:00 Uhr gestartet). Wird die crontab durch Änderungen am Webinterface intelligent ergänzt oder dumm überschrieben?
    Leider noch keine Ahnung

Vielen Dank!
Gruss
Juergen

Edit 2008-06-15: Einiges hat sich geklärt. Habe die Antworten für Interessiere in Kursiv eingetragen
 
Zuletzt bearbeitet:

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Den cron-Dienst kann man so neu starten:
Code:
/usr/syno/etc/rc.d/S04crond.sh stop
/usr/syno/etc/rc.d/S04crond.sh start
Trolli
 
Zuletzt bearbeitet:

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Ein Blick in die Datei S04crond.sh lohnt sich; ist ein gaaanz kleines Skript und man versteht, wie der cron hier gestoppt wird. Und man sieht auch, dass eine Kopie der /etc/crontab angelegt wird. Man kann also getrost direkt in der /etc/crontab editieren; erst durch das Stoppen und wieder Starten bekommt der /usr/sbin/crond das mit.

TIPPS:

Tabs müssen als Trennzeichen sein.

Notationshilfen:
alle 5 Minuten: */5 * * * * ....
jeden Tag von 8 bis 12 Uhr jeweils volle Stunde: 0 8-12 * * * .... alternativ: 0 8,9,10,11,12 * * * ...
im montags um 20 Uhr: 0 20 * * 1 ...

Wichtig außerdem: alle Pfade zu den Dateien immer vollständig eintragen, da der crond ja im Verzeichnis /usr/sbin liegt und sie sonst nicht findet.

Shell-Skripte am besten immer mit: /bin/sh skript-name starten (skript-name mit vollständigem Pfad) und darauf achten, dass die Zugriffsrechte passen (nicht nur auf das Skript, auch auf die Programme und Dateien darin), wenn es nicht mit dem Benutzer root gestartet wird.

Manchmal ist es ganz nützlich, die Skripte vorher zu testen :D Da kann man sich probehalber auch mal in ein anderes Verzeichnis stellen (mit cd) und schauen, ob noch alles so geht, wie man sich das gedacht hat.

Da der crond sozusagen im Hintergrund läuft (also keine Ausgabe ins aktuelle telnet-Fenster macht), muss man sich zum Testen eine Ausgabe-Datei anlegen und dort hinein die Zwischenergebnisse schreiben (z.B. echo 'zeile5' >/tmp/mycron.log). Diese Datei kann man sich dann anschauen ... und analysieren, ob auch alles so geht.

Nochmal der Hinweis: die Fehler im cron-Skript sind oft die fehlenden Pfadnamen zu Programmen und Dateien ... ;)
 

juergen@net

Benutzer
Mitglied seit
28. Mai 2008
Beiträge
323
Punkte für Reaktionen
0
Punkte
0
Super, vielen Dank für die prima Tipps.

Meine Crontabs haben sich heute schon bewährt. Das mit dem Tabs war besonders tückisch, da meine FritzBox, aus der ich die Einträge übertragen habe, mit Blanks zufrieden war. Aber irgendwo im Forum war ein Hinweis und nach Umstellung meines Editors (der wieder Tabs in Blanks konvertierte) lief dann auch der Testlauf.
Jetzt habe ich auch gelernt, wie man die crontab updatet, ohne die ganze Box zu restarten.

Aus dem Skript gelernt:
Mit
Code:
cat /var/spool/cron/crontabs/root
kann man sich die aktuell verwendete crontab anzeigen lassen.

Kann man auch überprüfen, ob der crond aktuell läuft?

Vielen Dank!
Gruss
Juergen
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Sischa:

ps | grep crond
 

ollege

Benutzer
Mitglied seit
28. Feb 2008
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
leere /etc/crontab nach reboot

Habe eine DS207+ (Details siehe unten) und habe mir meine /etc/crontab für meine Batch-Scripte angepasst. Das geht alles solange gut, bis ich die DS reboote. Nach dem Reboot sind alle meine Einträge in der crontab weg.

Weiss jemand zufällig in welchem Startup-Script dies geschieht?
 

ollege

Benutzer
Mitglied seit
28. Feb 2008
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
Habe in der Zwischenzeit nochmals etwas im Forum gestöbert und bin auf die Lösung gestoßen:
Achtung: beim editieren der crontab nie <spaces> sondern immer <tabs> benutzen. Irgendwie mag sie keine <spaces> zum trennen der Parameter. Warum nun beim Reboot die crontab gelöscht wird ist mir zwar immer noch nicht klar, aber mit den <tabs> bleibt die crontab jedenfalls nach dem Reboot unverändert.

Auf der DS ist 'whitespace != whitespace' - zumindest für die crontab - warum auch immer
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Das weiss ich leider nicht. Aber es liegt bestimmt am Format Deiner crontab. Wenn man den internen vi-editor benutzt und Tabs zwischen den Spalten einfügt geht es bestimmt.

EDIT: Gut - da warst Du ja schneller...

Trolli
 

ollege

Benutzer
Mitglied seit
28. Feb 2008
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
:) trotzdem danke für die rasche Antwort
 

juergen@net

Benutzer
Mitglied seit
28. Mai 2008
Beiträge
323
Punkte für Reaktionen
0
Punkte
0
Warum nun beim Reboot die crontab gelöscht wird ist mir zwar immer noch nicht klar, aber mit den <tabs> bleibt die crontab jedenfalls nach dem Reboot unverändert.
Nach meiner Erfarung wird jede Zeile mit Blanks statt Tabs einzeln gelöscht, wenn der crond gesatrtet wird. Kommentarzeilen und korrekte Zeilen bleiben drin.
 

Christoph_K

Benutzer
Mitglied seit
13. Nov 2011
Beiträge
48
Punkte für Reaktionen
0
Punkte
6
Ist zwar uralt aber ich bin hier zufällig drauf gestoßen.
Die "nicht korrekten" Zeilen, sprich die Zeilen die mit Whitespaces statt Tabs getrennt wurden, verschwinden, da das OS auf der Diskstation hergeht, und alle Zeilen an hand vom Delimiter "Tab" ermittelt und sie so neu schreibt.
Leerzeichen ist für ihn kein korrekter Delimiter... Also fliegen diese Zeilen raus.


LG
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat