CRONTAB: Jeden 1. Sonntag im Monat?

FreeBSD, Gentoo, openSUSE, CentOS, Ubuntu, Debian
jg1
Posts: 52
Joined: 2005-10-20 14:47

CRONTAB: Jeden 1. Sonntag im Monat?

Post by jg1 » 2007-06-26 19:34

Hallo,

wie kann man einen Cronjob so einrichten, dass er nur jeden 1. Sonntag im Monat startet?

Danke
Last edited by jg1 on 2010-09-12 01:05, edited 1 time in total.

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: CRONTAB: Jeden 1. Sonntag im Monat?

Post by Roger Wilco » 2007-06-26 19:41

Das geht mit einem "normalen" crond nicht. Du könntest höchtens jeden Sonntag ein Skript starten lassen, das überprüft, ob es der erste Sonntag im Monat ist und dann entsprechend weitermacht oder abbricht. Oder es reicht dir, wenn der Cronjob immer am 1. eines Monats läuft. Dann reicht das 3. Feld in der crontab.

EDIT: Möglicherweise geht es doch. Probier es mal so:

Code: Select all

0 0 1-7 * 0 /path/to/script

jg1
Posts: 52
Joined: 2005-10-20 14:47

Re: CRONTAB: Jeden 1. Sonntag im Monat?

Post by jg1 » 2007-06-26 19:48

Roger Wilco wrote:Das geht mit einem "normalen" crond nicht. Du könntest höchtens jeden Sonntag ein Skript starten lassen, das überprüft, ob es der erste Sonntag im Monat ist und dann entsprechend weitermacht oder abbricht. Oder es reicht dir, wenn der Cronjob immer am 1. eines Monats läuft. Dann reicht das 3. Feld in der crontab.

EDIT: Möglicherweise geht es doch. Probier es mal so:

Code: Select all

0 0 1-7 * 0 /path/to/script
Diese Einstellung habe ich vorgenommen... jedoch habe ich woanders gelesen, dass dann angeblich jeden 1. bis 7. und zusätzlich Sonntags der Cron läuft. Aber eigentlich wäre das unlogisch...

Ich probier es mal aus... Ist ein Sicherungsscript, was Sonntags einen Fullbackup machen soll (aber halt nur einmal im Monat).

Danke
Last edited by jg1 on 2010-09-12 01:05, edited 1 time in total.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11583
Joined: 2003-02-27 01:00
Location: Hamburg

Re: CRONTAB: Jeden 1. Sonntag im Monat?

Post by Joe User » 2007-06-26 19:58

Aus `man 5 crontab` (vixie-cron):

Code: Select all

EXAMPLE CRON FILE
...
5 4 * * sun     echo "run at 5 after 4 every sunday"

juergen
Posts: 133
Joined: 2004-03-30 14:44

Re: CRONTAB: Jeden 1. Sonntag im Monat?

Post by juergen » 2007-06-26 21:02

Workaround: Jeden 1-7 Tag im Monat ausführen und innerhalb des Cronjobs testen, ob es sich um einen Sonntag handelt:

Code: Select all

0 0 1-7 * * [[ $(date  +%a) = So ]] && REAL_JOB
Ich habe hier DE locale (So).

jg1
Posts: 52
Joined: 2005-10-20 14:47

Re: CRONTAB: Jeden 1. Sonntag im Monat?

Post by jg1 » 2007-06-26 22:45

juergen wrote:Workaround: Jeden 1-7 Tag im Monat ausführen und innerhalb des Cronjobs testen, ob es sich um einen Sonntag handelt:

Code: Select all

0 0 1-7 * * [[ $(date  +%a) = So ]] && REAL_JOB
Ich habe hier DE locale (So).

Danke, werde ich ausprobieren, wenn es anders nicht geht.
Auf jedem Fall bekomme ich jetzt in jedem Fall meine Sicherung hin!

Nochmals Danke!
Last edited by jg1 on 2010-09-12 01:06, edited 1 time in total.

antondollmaier
Posts: 485
Joined: 2004-03-30 10:06

Re: CRONTAB: Jeden 1. Sonntag im Monat?

Post by antondollmaier » 2007-06-27 00:16

Aus dem cron.d-Eintrag von mdadm, Debian Etch:

Code: Select all

# By default, run at 01:06 on every Sunday, but do nothing unless the day of
# the month is less than or equal to 7. Thus, only run on the first Sunday of
# each month. crontab(5) sucks, unfortunately, in this regard; therefore this
# hack (see #380425).
6 1 * * 0 root [ -x /usr/share/mdadm/checkarray ] && [ $(date +%d) -le 7 ] && /usr/share/mdadm/checkarray --cron --all --quiet
HTH :)

jg1
Posts: 52
Joined: 2005-10-20 14:47

Re: CRONTAB: Jeden 1. Sonntag im Monat?

Post by jg1 » 2007-06-27 06:08

antondollmaier wrote:Aus dem cron.d-Eintrag von mdadm, Debian Etch:

Code: Select all

# By default, run at 01:06 on every Sunday, but do nothing unless the day of
# the month is less than or equal to 7. Thus, only run on the first Sunday of
# each month. crontab(5) sucks, unfortunately, in this regard; therefore this
# hack (see #380425).
6 1 * * 0 root [ -x /usr/share/mdadm/checkarray ] && [ $(date +%d) -le 7 ] && /usr/share/mdadm/checkarray --cron --all --quiet
HTH :)
Hi!

Danke, habe den Code übernommen....
Last edited by jg1 on 2010-09-12 01:06, edited 1 time in total.