[cron] nur weekday

From: Christian Buhtz
Subject: [cron] nur weekday
Date: Tue, 20 May 2008 17:28:42 +0200
Ok, wieder ein Verständnisproblem.

33 7 * * 3 calc.exe

Jedes Jahr, an jedem Tag wird um 7:33 calc.exe ausgeführt. Soweit
richtig, oder?

Aber eigentlich möchte ich ja, das calc.exe nur(!) Mittwochs (3) umd
7:33 ausgeführt wird. Wie notiert man das?

Kann man andere Parameter (z.B.: Tag, Monat) sozusagen ignorieren?
From: Viktor Kafke
Subject: Re: [cron] nur weekday
Date: Tue, 20 May 2008 17:52:55 +0200
Christian Buhtz wrote:

> Ok, wieder ein Verständnisproblem.
>
> 33 7 * * 3 calc.exe
>
> Jedes Jahr, an jedem Tag wird um 7:33 calc.exe ausgeführt. Soweit
> richtig, oder?

Nein. Nur jeden Mittwoch, egal welches Datum.

> Aber eigentlich möchte ich ja, das calc.exe nur(!) Mittwochs (3) umd
> 7:33 ausgeführt wird. Wie notiert man das?
>
> Kann man andere Parameter (z.B.: Tag, Monat) sozusagen ignorieren?

Nein, aber es müssen alle Bedingungen erfüllt sein, nicht nur
irgendeine davon . Dein obiges Beispiel täte also schon das von Dir
Gewünschte.

--
Vik...
From: Michael Wagner
Subject: Re: [cron] nur weekday
Date: Tue, 20 May 2008 17:54:13 +0200
On 20.05.2008 Christian Buhtz <exsudat@gmx.de> wrote:

> 33 7 * * 3 calc.exe
>
> Jedes Jahr, an jedem Tag wird um 7:33 calc.exe ausgeführt. Soweit
> richtig, oder?

Hallo Christianw

da denkst du falsch. Obiges bedeutet "jeden Mittwoch um 7:33" so wie es
von dir gewünscht ist. Nachzulesen in "man 5 crontab"

Hth Michael

--
"If I had been brought up in a different time [...] perhaps I'd
be totally comfortable in ML and would find C unsafe, a little
dangerous, not very expressive." - Brian Kernighan
From: Juergen Ilse
Subject: Re: [cron] nur weekday
Date: 20 May 2008 17:03:52 GMT
Hallo,

Christian Buhtz <exsudat@gmx.de> wrote:
> Ok, wieder ein Verständnisproblem.
>
> 33 7 * * 3 calc.exe
>
> Jedes Jahr, an jedem Tag wird um 7:33 calc.exe ausgeführt. Soweit
> richtig, oder?

Nein. Die "Sternchen" fuer Monat und Tag des Monats werden hier durch
die Angabe des Wochentages (3, also Mittwoch) eingeschraenkt, damit wird
der Jobs nur Mittwochs ausgefuehrt.

> Aber eigentlich möchte ich ja, das calc.exe nur(!) Mittwochs (3) umd
> 7:33 ausgeführt wird. Wie notiert man das?

Wo wie dor oben. Wenn du sowohl fuer Monat und Tag des Monats als auch
fuer Wochentag einen eintrag machst, wird der Cron-Job an dem bestimmten
Tag des bestimmten Monats (was eben in der Zeile angegeben ist) *unabhaengig*
vom Wochentag und an dem in der Zeile angegebenen Wochentag *unabhaengig*
von Monat und Tag des Monats ausgefuehrt. Die Zeilen

33 7 1 * * cmd
33 7 * * 3 cmd

lassen sich auf diese Weise zusammenfassen zu:

33 6 1 * 3 cmd

Die untere Zeile hat (auch wenn das vielleicht nicht ganz auf Anhieb
einsichtig ist) die selbe Bedeutung wie die *beiden* Zeilen weiter
oben zusammen.

Tschuess,
Juergen Ilse (juergen@usenet-verwaltung.de)
--
Ein Domainname (auch wenn er Teil einer Mailadresse ist) ist nur ein Name,
nicht mehr und nicht weniger ...
From: Christian Buhtz
Subject: Re: [cron] nur weekday
Date: Tue, 20 May 2008 19:36:56 +0200
Juergen Ilse schrieb:
>> 33 7 * * 3 calc.exe
>
> Nein. Die "Sternchen" fuer Monat und Tag des Monats werden hier durch
> die Angabe des Wochentages (3, also Mittwoch) eingeschraenkt, damit wird
> der Jobs nur Mittwochs ausgefuehrt.

Ok, das konnte ich so aber aus man crontab(5) nicht herausinterpretieren.

Soweit ich verstand, werden "day of month" und "day of week" mit ODER
verknüpft, anstatt wie alle anderen Felder mit UND. Irgendwie hatte ich
das "If both fields are restricted" etwas überlesen.
Könnte man also im Gegenzug sagen, das wenn nur eines der Felder
spezifieziert ist (also eines mit Wert, Range oder Step und das andere
nur mit *) wird das *-Feld ignoriert und nur das andere zählt?
From: Juergen Ilse
Subject: Re: [cron] nur weekday
Date: 20 May 2008 19:03:49 GMT
Hallo,

Christian Buhtz <exsudat@gmx.de> wrote:
> Juergen Ilse schrieb:
>>> 33 7 * * 3 calc.exe
>> Nein. Die "Sternchen" fuer Monat und Tag des Monats werden hier durch
>> die Angabe des Wochentages (3, also Mittwoch) eingeschraenkt, damit wird
>> der Jobs nur Mittwochs ausgefuehrt.
> Ok, das konnte ich so aber aus man crontab(5) nicht herausinterpretieren.

Es ist auf den ersten Blick auch nicht sonderlich intuitiv (wie man leider
zugeben muss ...).

> Soweit ich verstand, werden "day of month" und "day of week" mit ODER
> verknüpft, anstatt wie alle anderen Felder mit UND. Irgendwie hatte ich
> das "If both fields are restricted" etwas überlesen.

Das ist gerade der "nicht intuitive" Fall, bei dem man die Zeile leicht
falsch interpretiert.

> Könnte man also im Gegenzug sagen, das wenn nur eines der Felder
> spezifieziert ist (also eines mit Wert, Range oder Step und das andere
> nur mit *) wird das *-Feld ignoriert und nur das andere zählt?

Ja (wobei bei dieser Formulierung das "eine" der "beiden Felder" aus
zwei Feldern der crontab besteht: dem Monat und dem Tag des Monats).

Tschuess,
Juergen Ilse (juergen@usenet-verwaltung.de)
--
Ein Domainname (auch wenn er Teil einer Mailadresse ist) ist nur ein Name,
nicht mehr und nicht weniger ...
From: Juergen Ilse
Subject: Re: [cron] nur weekday
Date: 20 May 2008 19:18:41 GMT
Hallo,

Juergen Ilse <ilse@usenet-verwaltung.de> wrote:
> Christian Buhtz <exsudat@gmx.de> wrote:
>> Könnte man also im Gegenzug sagen, das wenn nur eines der Felder
>> spezifieziert ist (also eines mit Wert, Range oder Step und das andere
>> nur mit *) wird das *-Feld ignoriert und nur das andere zählt?
> Ja (wobei bei dieser Formulierung das "eine" der "beiden Felder" aus
> zwei Feldern der crontab besteht: dem Monat und dem Tag des Monats).

OOPTS. Ich muss mich korrigieren. Der Fall, den ich noch nie in der
Praxis benoetigt habe, sieht doch anders aus:

Wenn Wochentag und Monat angegeben ist, wird der entsprechende Job
nur in diesem Monat an dem entsprechenden Wochentag ausgefuehrt.
Die "Sonderbehandlung" wenn beide Felder gesetzt sind, bezieht sich
nur jeweils aus die Angabe des Tages (wahlweise als Tag des Monats
oder als Wochentag, wenn beide als konkreter Wert angegeben sind,
wird der Jobs ausgefuehrt, wenn *mindestens* *eine* der beiden Angaben
und *alle* anderen Angaben (einschliesslich Monat) matchen, ist genau
eine der beiden Tagesangaben konkret angegeben und die andere ein "*",
so wird der "*" fuer die Tagesangabe in dem Fall ignoriert.

Tschuess,
Juergen Ilse (juergen@usenet-verwaltung.de)
--
Ein Domainname (auch wenn er Teil einer Mailadresse ist) ist nur ein Name,
nicht mehr und nicht weniger ...
From: Michael Schmarck
Subject: Re: [cron] nur weekday
Date: Tue, 20 May 2008 19:49:57 +0200
· Christian Buhtz <exsudat@gmx.de>:

> Ok, wieder ein Verständnisproblem.
>
> 33 7 * * 3 calc.exe
>
> Jedes Jahr, an jedem Tag wird um 7:33 calc.exe ausgeführt. Soweit
> richtig, oder?
>
> Aber eigentlich möchte ich ja, das calc.exe nur(!) Mittwochs (3) umd
> 7:33 ausgeführt wird. Wie notiert man das?

So, wie es in der manpage steht. Siehe http://www.hmug.org/man/5/crontab.php

field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sun, or use names)

A field may be an asterisk (*), which always stands for ``first-last''.

> Kann man andere Parameter (z.B.: Tag, Monat) sozusagen ignorieren?

Nein.

Michael Schmarck
--
The strong give up and move away, while the weak give up and stay.

From: Christian Buhtz
Subject: Re: [cron] nur weekday
Date: Tue, 20 May 2008 20:09:55 +0200
Michael Schmarck schrieb:
> So, wie es in der manpage steht.

Ich möchte wirklich nicht den Eindruck erwecken, ich hätte die man nicht
gelesen. Hab ich. Nur ist das Regelwerk dort etwas zwischen den Zeilen
versteckt.

Und für
"A field may be an asterisk (*), which always stands for `first-last''."
gibt es ja scheinbar Ausnahmen.