/etc/crontab

Status
Für weitere Antworten geschlossen.

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
904
Punkte für Reaktionen
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?
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.166
Punkte für Reaktionen
414
Punkte
393
Hallo,
ja die Jobs werden genau da eingetragen. Und nicht vergessen, nur Tabulator zwischen den einzelnen Feldern.

Gruß Götz
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
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
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
904
Punkte für Reaktionen
12
Punkte
44
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. :eek:
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.166
Punkte für Reaktionen
414
Punkte
393
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
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
904
Punkte für Reaktionen
12
Punkte
44
nein, jetzt aber. Ich warte dann mal voll Zuversicht 'ne halbe Stunde... :rolleyes:

Danke.
 
Zuletzt bearbeitet:

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
904
Punkte für Reaktionen
12
Punkte
44

itari

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

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
904
Punkte für Reaktionen
12
Punkte
44
Meinst Du nicht, es wäre etwas anmassend, wenn einer wie ich da rumpfuscht?
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
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
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
904
Punkte für Reaktionen
12
Punkte
44
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).
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
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
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
904
Punkte für Reaktionen
12
Punkte
44
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.
 

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
904
Punkte für Reaktionen
12
Punkte
44

wired2051

Benutzer
Mitglied seit
17. Mrz 2010
Beiträge
904
Punkte für Reaktionen
12
Punkte
44
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