Cronjob monatlich an bestimmtem Tag

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Envader
Beiträge: 32
Registriert: 27.12.2006 21:44:18

Cronjob monatlich an bestimmtem Tag

Beitrag von Envader » 27.12.2006 21:50:45

Hallo,

ich würde gerne einen Cronjob einrichten, der an jedem 1. Sonntag im Monat läuft.

Muss dies wie folgt aussehen, oder hab ich da einen Fehler drin?

Code: Alles auswählen

30 21 1 * 7 /usr/local/bin/rsnapshot monthly 
Oder kann ich den Job irgendwie einstellen, dass er alle 4 Wochen Sonntags läuft wie folgt?

Code: Alles auswählen

30 21 */28 * 7 /usr/local/bin/rsnapshot monthly 
Danke für Hilfe.

Gruss
Mathias

Benutzeravatar
Snoopy
Beiträge: 4297
Registriert: 17.11.2003 18:26:56
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rh.- Pflz.

Beitrag von Snoopy » 27.12.2006 21:57:25

Hallo und herzlich Willkommen im Forum ! :)

Bei Fragen bzgl Cronjobs ist [1] immer der erste Anlaufpunkt.

Nun...Du solltest wissen, was Du magst.
Einen Job alle 4 Wochen laufen zu lassen, ist etwas ganz Anderes als immer einen am ersten Sonntag / Monat laufen zu haben.

Bedenke: Es gibt Monate, die haben mehr als 4 Wochen und dann verschiebt sich Dein Cronjob gewaltig.

[1] Link

Envader
Beiträge: 32
Registriert: 27.12.2006 21:44:18

Beitrag von Envader » 27.12.2006 22:03:55

Also der Link ist schonmal gut, danke.

Aber am besten wäre ein Cronjob, der jeden 1. Sonntag im Monat ausgeführt wird. Das wäre am ehesten, was ich brauche.

Danke!
Mathias

Benutzeravatar
Snoopy
Beiträge: 4297
Registriert: 17.11.2003 18:26:56
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rh.- Pflz.

Beitrag von Snoopy » 27.12.2006 22:14:58

Hi

Nun...afaik ist das dann ein Problem, wenn das Ding jeden ersten Sonntag im Monat laufen soll.

Nimmt man mal den Aufbau einen Cronjobs wird es evtl klarer

Code: Alles auswählen

Minute | Stunde | Tag des Monats | Monat | Tag der Woche | Befehl
Cron weiss nicht, wann der erste Sonntag im Monat eintritt. :?
Die Stelle "Tag des Monats" geht eben nach dem Kalender: Tag 1-31.
Eine Prüfung wann der erste Sonntag im Monat eintritt ist dort nicht vorgesehen.

Was willst Du da denn laufen lassen ?

Envader
Beiträge: 32
Registriert: 27.12.2006 21:44:18

Beitrag von Envader » 27.12.2006 22:19:19

Genau sowas ähnliches hatte ich mir schon gedacht.
Es geht hier um ein monatliches Backups eines Servers.

Aber es würde auch alle 4 Wochen Sonntags gehen, aber geht das überhaupt einzustellen?

Gruss
Mathias

Benutzeravatar
H4kk3r
Beiträge: 724
Registriert: 02.01.2006 16:50:51
Wohnort: in der Nähe von Heidelberg

Beitrag von H4kk3r » 27.12.2006 22:46:56

Das mit dem Sonntag geht nicht. Am ersten jeden Monats ist doch auch gut. Wieso eigentlich nur einmal im Monat? Bei mir gibt es das täglich.
Gruß, Marcus

„Well done! We did it!“

Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE

Envader
Beiträge: 32
Registriert: 27.12.2006 21:44:18

Beitrag von Envader » 27.12.2006 22:49:32

Es gibt ein tägliches Backup, dann nochmal ein wöchentliches und eben das monatliche.

Also gibt es auch keine Möglichkeit mit dem Sonntag alle 4 Wochen?

Gruss
Mathias

Benutzeravatar
H4kk3r
Beiträge: 724
Registriert: 02.01.2006 16:50:51
Wohnort: in der Nähe von Heidelberg

Beitrag von H4kk3r » 27.12.2006 22:52:31

Du kannst höchstens täglich ein Skript ausführen lassen, das überprüft, ob heute der richtige Tag ist.
Gruß, Marcus

„Well done! We did it!“

Debian testing
kernel 2.6.18.3
IBM R50e UR0S5GE

Benutzeravatar
Snoopy
Beiträge: 4297
Registriert: 17.11.2003 18:26:56
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rh.- Pflz.

Beitrag von Snoopy » 27.12.2006 22:54:27

Hi

Gehen...gehen tut das auf jeden Fall...man sollte nicht zu schnell die Flinte ins Korn werfen.
Das mit dem "ersten Sonntag im Monat" kann ich auch vollkommen nachvollziehen, da Sonntags viele Systeme eine Ruhezeit haben und das System u.U. nicht gebraucht wird.
( Evtl muss man für das Backup sogar div. Applikationen runterfahren und und und... )

Aber....evtl sollte man sich bzgl diesem "ersten Sonntag im Monat" nicht zu sehr auf Cron versteifen.
Viele Wege führen nach Rom...

Man lässt es im Skript checken...denken wir mal logisch:
Der erste Sonntag im Monat kann maximal eine Tageszahl von 7 haben, ein höherer Wert ist aufgrund der 7-Tage-Woche nicht möglich.
Wenn wir nun einen Job erstellen, der jeden Sonntag läuft ( um die Prüfung des Wochentags zu skippen und um den Job nicht täglich laufen zu lassen ) und dieser Job intern zusätzlich prüft, ob heute das Tages-Datum geringer oder gleich 7 ist ( einfachster Weise zwingend kleiner als "8" )...dann haben wir den ersten Sonntag im Monat.
Und wenn das der Fall ist....mach mir das Backup...wenn nein...verpissen wir uns sauber und machen nix.

Das Ganze geht per Shell in Verbund von einer if-then-else Schleife mit Kommando date einwandfrei.

Benutzeravatar
hkalegre
Beiträge: 286
Registriert: 11.11.2005 14:32:08

Beitrag von hkalegre » 28.12.2006 09:08:42

Schau doch auch einmal hier: http://www.linux-user.de/ausgabe/2000/1 ... ron-1.html
Etwas alt, aber noch aktuell.

Benutzeravatar
Lord_x
Beiträge: 108
Registriert: 15.11.2005 11:16:58
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von Lord_x » 28.12.2006 10:30:26

@Snoopy

Noch einfacher ist es, wenn er den CronJob am Sonntag startet und alle 7 Tage wiederholt :wink:

Lord_x

Benutzeravatar
Snoopy
Beiträge: 4297
Registriert: 17.11.2003 18:26:56
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rh.- Pflz.

Beitrag von Snoopy » 28.12.2006 10:36:36

Lord_x hat geschrieben:@Snoopy

Noch einfacher ist es, wenn er den CronJob am Sonntag startet und alle 7 Tage wiederholt :wink:

Lord_x
Hi

Er will aber, dass der Job an jedem ersten Sonntag im Monat läuft und an keinem anderen Sonntag im Monat...oder hab ich da gerade ein Verständnis Problem ?

Benutzeravatar
Lord_x
Beiträge: 108
Registriert: 15.11.2005 11:16:58
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von Lord_x » 28.12.2006 10:38:27

Nein hast recht.

Envader
Beiträge: 32
Registriert: 27.12.2006 21:44:18

Beitrag von Envader » 28.12.2006 11:25:24

Moin,

erstmal vielen Dank für die ganzen Antworten.
Werden wohl nun doch nachgeben und lassen den Cronjob einfach an jedem 1. im Monat laufen, dass scheint dann doch am einfachsten zu sein. ;)

Sobald wir noch eine andere Idee haben, werde ich diese hier posten, falls wir es noch umsetzen.

Gruss und guten Rutsch!

Mathias

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22456
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: Cronjob monatlich an bestimmtem Tag

Beitrag von KBDCALLS » 28.12.2006 15:38:51

Envader hat geschrieben:
Oder kann ich den Job irgendwie einstellen, dass er alle 4 Wochen Sonntags läuft wie folgt?

Code: Alles auswählen

30 21 */28 * 7 /usr/local/bin/rsnapshot monthly 

Code: Alles auswählen

30 21 1-7 1-12  7 /usr/local/bin/rsnapshot monthly 

Das müßte funktionieren.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Antworten