How to configure cron

Die Aufgabe

Starte an jedem ersten Montag im Monat um 7:15 Uhr

Die Lösung

15 7 */32,1-7 * 1

Check it out on crontab.guru

Der Trick

Aufbau cron: Linux manual page

* * * * *

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)

Bei Angabe eines Tags im Monat und eines Tags in der Woche, wird der Job ausgeführt, wenn eine der Bedingungen erfüllt ist (ODER Verknüpfung):

0 0 1 * MON

bedeutet: Läuft um Mitternacht, wenn es entweder der 1. Tag im Monat ODER ein Montag ist.

Wenn eines der Felder unbeschränkt (*) ist, wird stattdessen eine AND-Verknüpfung verwendet:

0 0 * * MON

bedeutet: Es läuft um Mitternacht an jedem Montag.

Unbeschränkt sind alle Felder, die mit einem * anfangen:

0 0 1-7 * */7

bedeutet: An jedem 1. Sonntag im Monat (*/7 gilt als unbeschränktes Feld).

Dies lässt sich aber nur auf den Sonntag anwenden und nicht auf einen anderen Tag der Woche. Um einen Job jeden 1. Montag im Monat zu starten, kann man

0 0 */100,1-7 * MON

verwenden, was bedeutet: An jedem 100. Tag des Monats und jeden Tag Tag von 1-7, wenn es ein Montag ist. Also kurz: An jedem ersten Montag im Monat.

Die Quelle

https://blog.healthchecks.io/2022/09/schedule-cron-job-the-funky-way/