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.