/etc/crontab

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

wired2051

Benutzer
Registriert
17. März 2010
Beiträge
932
Reaktionspunkte
12
Punkte
44
Ich will einen Cronjob anlegen. Offenbar funktioniert crontab -e auf der DS weder als user noch als root und mit 3rdparty-Installation will ich deshalb nicht anfangen. Meine Frage daher, wie mache ich das?

Ich habe bisher nur /etc/crontab gefunden, die gehört root und enthält bei mir derzeit:

#minute hour mday month wday who command
0 0 * * * root /usr/sbin/ntpdate -b pool.ntp.o

Kann ich da meine jobs eintragen oder wie lieber eine für den user installieren, wo und wie?
 
Hallo,
ja die Jobs werden genau da eingetragen. Und nicht vergessen, nur Tabulator zwischen den einzelnen Feldern.

Gruß Götz
 
Kann ich da meine jobs eintragen oder wie lieber eine für den user installieren, wo und wie?
Verwende doch den Default cron und dann im jeweiligen cronjob ein su user, wenn du einen anderen User als root verwenden willst
Code:
0       0       *       *       *       root    /usr/sbin/ntpdate -b  pool.ntp.org
0 * * * * root su user -c "/path/to/command parameters"
effektiv läuft der zweite Job also unter der Kennung von user
p.s. sollten TABS sein bei meinem Beispiel
 
Es funktioniert nicht automatisch, ich kann rsnapshot hourly zwar manuell starten, alles wird auch offenbar gemacht, wie zu erwarten (es existieren hourly.0 und hourly.1) aber automatisch startet das Programm nicht. :confused:

DS209> vi /opt/var/log/rsnapshot
[07/May/2010:15:48:48] /opt/bin/rsnapshot hourly: started
[07/May/2010:15:48:48] echo 17534 > /opt/var/run/rsnapshot.pid
[07/May/2010:15:48:48] mkdir -m 0755 -p /volume2/Sicherung2/hourly.0/
[07/May/2010:15:48:48] /opt/bin/rsync -a --delete --numeric-ids --relative --de
[07/May/2010:16:02:34] touch /volume2/Sicherung2/hourly.0/
[07/May/2010:16:02:35] rm -f /opt/var/run/rsnapshot.pid
[07/May/2010:16:02:35] /opt/bin/rsnapshot hourly: completed successfully
[07/May/2010:16:13:01] /opt/bin/rsnapshot hourly: started
[07/May/2010:16:13:01] echo 17614 > /opt/var/run/rsnapshot.pid
[07/May/2010:16:13:01] mv /volume2/Sicherung2/hourly.0/ /volume2/Sicherung2/hou
[07/May/2010:16:13:01] mkdir -m 0755 -p /volume2/Sicherung2/hourly.0/
[07/May/2010:16:13:01] /opt/bin/rsync -a --delete --numeric-ids --relative --de
[07/May/2010:16:13:47] touch /volume2/Sicherung2/hourly.0/
[07/May/2010:16:13:47] rm -f /opt/var/run/rsnapshot.pid
[07/May/2010:16:13:47] /opt/bin/rsnapshot hourly: completed successfully

DS209> vi /etc/crontab
#minute hour mday month wday who command
0 0 * * * root /usr/sbin/ntpdate -b pool.ntp.o
30 10-20 * * * root /opt/bin/rsnapshot hourly
30 23 * * * root /opt/bin/rsnapshot daily
30 22 * * 5 root /opt/bin/rsnapshot weekly
30 21 1 * * root /opt/bin/rsnapshot monthly

Dabei sind überall TABs und ich habe es auch mit eine #-Kommentarzeile am Ende probiert, vergebens, rsnapshot wird offenbar nicht gestartet. Ich weiss auch nicht, wo ich noch mehr Fehler einsehen kann. In /opt/etc/rsnapshot.conf ist verbose 2 (mit TAB) eingestellt. :o
 
Hallo,
hast Du crond neu gestartet?
Rich (BBCode):
/usr/syno/etc/rc.d/S04crond.sh stop
/usr/syno/etc/rc.d/S04crond.sh start

Gruß Götz
 
nein, jetzt aber. Ich warte dann mal voll Zuversicht 'ne halbe Stunde... :rolleyes:

Danke.
 
Zuletzt bearbeitet:
Meinst Du nicht, es wäre etwas anmassend, wenn einer wie ich da rumpfuscht?
 
Meinst Du nicht, es wäre etwas anmassend, wenn einer wie ich da rumpfuscht?

Nö - im Gegenteil, du steckst gerade in der Materie frisch drinne und kannst es so formulieren, dass man es auch versteht :)

Itari
 
Nagut, Du hast es so gewollt! :D

Bei der Konfiguration der Rsnapshot-Intervalle bin ich mir allerdings nicht sicher, deshalb habe ich das in die Diskussion geschrieben: ich glaube, die Erklärung im Wiki ist nicht ganz richtig (oder missverständlich).
 
Nagut, Du hast es so gewollt! :D

Bei der Konfiguration der Rsnapshot-Intervalle bin ich mir allerdings nicht sicher, deshalb habe ich das in die Diskussion geschrieben: ich glaube, die Erklärung im Wiki ist nicht ganz richtig (oder missverständlich).
Danke für die Ergänzung im Wiki. Sieht doch schön aus. Wegen der Intervalle: Da hast du recht, es geht darum wieviele snapshots rsnapshot für jedes Intervall behält. Wie oft die Backups gemacht werden entscheidet ja nur der cron. Das habe ich damals nicht so ganz genau geschrieben ;)

Du solltest aber trotzdem sicherstellen, dass die Intervalle und die Häufigkeit der Ausführung via cron gleich sind. Wenn du nämlich festlegst, dass nur 1 hourly Intervall behalten werden soll, den cron aber trotzdem stündlich aufrufst, dann wirst du am Ende des Tages nur das letzte hourly Backup haben. rsnapshot schmeisst die alten weg, weil gemäss Konfig nur 1 hourly snapshot gespeichert werden soll.
Wieso machst du nach 20 Uhr und bis 10 Uhr keine hourly Backup mehr? DS runtergefahren?
ich würde das so probieren
Code:
30 10-20   *       *       *       root    /opt/bin/rsnapshot  hourly
10 21-23   *       *       *       root    /opt/bin/rsnapshot  hourly
einfach den stündlichen backup 20 min früher machen, damit es sicher keine Race-Condition mit daily, weekly oder monthly gibt
 
Du solltest aber trotzdem sicherstellen, dass die Intervalle und die Häufigkeit der Ausführung via cron gleich sind. Wenn du nämlich festlegst, dass nur 1 hourly Intervall behalten werden soll, den cron aber trotzdem stündlich aufrufst, dann wirst du am Ende des Tages nur das letzte hourly Backup haben. rsnapshot schmeisst die alten weg, weil gemäss Konfig nur 1 hourly snapshot gespeichert werden soll.

Das ist klar.

Die Überlegung ist viel mehr weitere Flexibilität für die Wiederherstellung zu ermöglichen: normalerweise würde man ja 24 stündliche BAs machen und dann kommt das daily. Wäre es nicht aber sinnvoll, z.B. 48 oder 72 hourly BAs zu behalten? Ich weiss eben leider noch nicht, ob es so funktioniert aber wenn, könnte man 2, 3 oder noch mehr Tage stundenweise zurückgehen, ehe man nur noch tägliche Intervalle hat. Der Nachteil wäre natürlich, dass, wenn ich das richtig verstanden habe, z.B. hourly.23 auch in daily.0 und hourly.47 in daily.1 doppelt vorgehalten werden - aber wen stört's?

Wieso machst du nach 20 Uhr und bis 10 Uhr keine hourly Backup mehr? DS runtergefahren?
ich würde das so probieren
Code:
30 10-20   *       *       *       root    /opt/bin/rsnapshot  hourly
10 21-23   *       *       *       root    /opt/bin/rsnapshot  hourly
einfach den stündlichen backup 20 min früher machen, damit es sicher keine Race-Condition mit daily, weekly oder monthly gibt

Ja, Daten die zwischen 20 und 10 Uhr geändert werden können auch erst um 10 gesichert werden, das passt schon. Die Platten schalten nach 20 Min. ab und haben dann mal etwas Ruhe. Die DS läuft allerdings durch.

Ich habe das bei mir jetzt so eingerichtet, dass rsync die Daten stündlich (00) auf HD1 der DS sammelt und dann werden sie 30 Min. später mit rsnapshot auf HD2 der Ds gesichert. Die 30 Min. sind recht willkürlich, geben aber genug Spielraum, falls es mal etwas länger dauert (die Mars-Sicherung halt) ;)

Die Zeiten auf der DS in /etc/crontab, also hourly 10:30-20:30, daily 23:30, weekly 22:30 und monthly 21:30 habe ich wegen dieses Hinweises so gewählt:
It is usually a good idea to schedule the larger intervals to run a bit before the lower ones. For example, in the crontab above, notice that "daily" runs 10 minutes before "hourly". The main reason for this is that the daily rotate will pull out the oldest hourly and make that the youngest daily (which means that the next hourly rotate will not need to delete the oldest hourly), which is more efficient. A secondary reason is that it is harder to predict how long the lowest interval will take, since it needs to actually do an rsync of the source as well as the rotate that all intervals do.

Ich muss leider gestehen, dass ich besonders den kursiven Teil nicht 100%ig verstanden habe, sonst hätte ich den Hinweis im Wiki-Beitrag erwähnt.
 
Da ich schon mal dabei war, auch noch einen Wiki-Artikel zu Cron erstellt. Korrekturen erwünscht. ;)
 
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