NetWorker und Schedule Override Last day of every month

In vielen Unternehmen ist es so, dass einmal im Monat ein Backup mit einer längeren Aufbewahrungszeit als normalerweise durchführt werden soll. Hierfür hat man verschiedene Möglichkeiten. Z.B. wenn das Full Backup an einem Freitag läuft nimmt man dann einfach den letzten Freitag im Monat. Bei manchen Unternehmen gibt es jedoch auch den Stichtag des letzten Tages im Monat, der dafür genutzt werden soll. Dafür bietet der Dell EMC NetWorker in der NMC die Möglichkeit, einen override “last day every month” zu wählen. Alles gut…. Oder doch nicht?Leider ist an dieser Stelle gar nichts gut.
Um die betreffende Stelle einmal zu zeigen:

full last day every month

Wenn man sich eine Action zusammenstellt, kommt man an die Stelle mit dem Kalender. Hier hat man die Möglichkeit, sogenannte overrides zu platzieren. Z.B. “full first sunday every month”, womit an jedem ersten Sonntag im Monat ein Full Backup durchgeführt wird, auch wenn das Full Backup regulär eigentlich an einem anderen Wochentag läuft. Und es gibt dort auch direkt die Auswahl “Last day of the Month”, welche dann bei den overries z.B. ein “full last day every month” hinzufügt. Oder wenn es sich um eine Clone Action handelt ein “exec last day every month”.
Jetzt könnte man meinen, dass der NetWorker bei “full last day every month” auch am letzten Tag eines Monats ein Full Backup ausführt.
Leider ist das NICHT der Fall. Wie Dell EMC in diesem Artikel beschreibt, wird das Wörtchen “day” nämlich nicht unterstützt. Erschreckend kommt hinzu, dass der Artikel mittlerweile fast zwei Jahre auf dem Buckel hat und dass es diese Auswahlmöglichkeit in der NMC auch im NetWorker 18.2 und 19.1 noch immer gibt. Nach Kontakt mit dem NetWorker Support von Dell EMC wurde mir dies ebenfalls nochmal bestätigt. Es ist natürlich sehr toll, dass es dafür in der NMC sogar eine Auswahlmöglichkeit gibt, welche aber eigentlich gar nicht unterstützt wird. Die im Artikel direkt genannten Alternativen sind allerdings ebenfalls nicht hilreich, da keine davon etwas am letzten Tag eines Monats durchführt.

Noch viel erschreckender ist allerdings, was genau passiert, wenn man tatsächlich ein “full last day every month” verwendet. Denn es ist keineswegs so, dass NetWorker das einfach ignoriert. Nein, er tut tatsächlich etwas, was der Artikel unten bei den Notes beschreibt. NetWorker schaut nämlich nach, wie viele Tage der Vormonat hatte und führt dann den Job an genau diesen Tag aus.
Da der Juni 30 Tage hat, würde der Job am 30. Juli laufen und nicht am 31. Juli. Im März sieht man es noch deutlicher, denn da läuft der Job am 28. (bzw. 29. in einem Schaltjahr) März, da der Februar halt 28, bzw. 29 Tage hat.

Doch gibt es dafür eine Lösung. Man kann nämlich das Datum ohne Jahresangabe einstellen.
Ein “full last day every month” lässt sich bewerkstelligen, indem man bei den overrides folgendes einfügt:

full 1/31
full 2/28
full 3/31
full 4/30
full 5/31
full 6/30
full 7/31
full 8/31
full 9/30
full 10/31
full 11/30
full 12/31

Der einzige Monat, wo dies leider nicht ganz hinhaut ist der Februar in einem Schaltjahr. Her läuft der Job dann trotzdem am 28.02.

Bei einer Clone Action würde man stattdessen dies verwenden:

exec 1/31
exec 2/28
exec 3/31
exec 4/30
exec 5/31
exec 6/30
exec 7/31
exec 8/31
exec 9/30
exec 10/31
exec 11/30
exec 12/31

Wenn der Job am letzten Tag im Quartal laufen soll, nimmt man dieses:

exec 3/31
exec 6/30
exec 9/30
exec 12/31

Und hiermit würde der Job am ersten Tag in jedem Quartal laufen:

exec 1/1
exec 4/1
exec 7/1
exec 10/1