Crontab Fehlermeldung

Bash, Shell, PHP, Python, Perl, CGI
AWOHille
Posts: 271
Joined: 2011-09-05 09:00

Crontab Fehlermeldung

Post by AWOHille » 2013-06-05 16:12

Hallo,

ich möchte, das per Cronjob, an jedem ersten Mittwoch im Monat ein Script ausgeführt wird. Das löse ich so

Code: Select all

[ "$(date +%a)" == "Mi" ] && script.sh


Auf der Kommandozeile funktioniert es tadellos. Per Cronjob

Code: Select all

09 16 1-7 * * [ "$(date +%a)" == "Mi" ] && script.sh


bekomme ich folgende Fehlermeldung: /bin/sh: Syntax error: end of file unexpected (expecting ")")

Wo liegt mein Fehler?

ddm3ve
Moderator
Moderator
Posts: 1149
Joined: 2011-07-04 10:56

Re: Crontab Fehlermeldung

Post by ddm3ve » 2013-06-06 14:19

Generell ist das Problem schon mal, dass Du keine vollständigen Pfade nutzt.
2. rein logisch betrachtet kommt der Mittwoch den Du willst max. innerhalb der ersten 7 Tagen des Monats vor und ist je nach Systemeinstellung der 3. oder 4. Tag in der Woche.

Was Du brauchst gibt also cron normalerweise schon her.

The time and date fields are:

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 Sunday, or use names)


Entsprechend bedeutet das für Dich:

Code: Select all

09 16 1-7 * 3  /vollerpfad/script.sh


Beachte die 3!

Kleiner Nachtrag:
Deine Lösung mit date und String vergleich ist technisch zwar i.O. kann aber Probleme bereiten, da man nicht zwangsläufig und zuverlässig die Spracheinstellung der jeweiligen Umgebung kennt.
-> Umgebung des cron ggf. Englisch Deine UI hingegen deutsch. Damit muss man also diese Fälle ebenfalls abdecken.
Mit Zahlen und obigen Beispiel geht es hingegen zweifelsfrei. Du musst lediglich beachten, ob der Erste Wochentag Sonntag oder Montag ist.
Alternativ kann auch statt dem Wochentag als Zahl die Kurzbezeichnung genutzt werden.
"sun, mon, tue, wed,..." ich hoffe mal ich habe die Kürzel richtig im Kopf.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.

AWOHille
Posts: 271
Joined: 2011-09-05 09:00

Re: Crontab Fehlermeldung

Post by AWOHille » 2013-06-06 18:12

ddm3ve wrote:Generell ist das Problem schon mal, dass Du keine vollständigen Pfade nutzt.


Habe ich verwendet, hier im Beispiel hatte ich die Pfade vergessen.

ddm3ve wrote:
Was Du brauchst gibt also cron normalerweise schon her.

Entsprechend bedeutet das für Dich:

Code: Select all

09 16 1-7 * 3  /vollerpfad/script.sh



Ja, so sollte es auch gehen. :-D Manchmal kommt man einfach nicht drauf.
Last edited by AWOHille on 2013-06-06 18:12, edited 1 time in total.