Есть ежедневные архивы, они называются допустим так:
2021-04-01
2021-04-02
2021-04-03
...
Могут быть пропуски, если архив не сформировался.
1, 2, 3 числа месяца запускается скрипт.
Его задача:
1. Удалить архивы, которые старше месяца.
2. Взять самый ранний архив и скопировать его в папку Месячные
Но это задание тоже может не отработать.
В принципе можно создавать файл 2021-03.flg если задание отработало (месячный флаг).
Но как-то это все сложно. Проще как-то можно выдергивать месячные архивы?
проще сделать разные папки для ежедневных и месячных архивов и разные задачи со своим расписанием.
Из папки ежедневных архивов удалять файлы старше месяца ежедневно.
Из папки ежемесячных - ежедневно удалять файлы старше года.
По надежности наверно ничем не хуже. А сложность меньше.
Флаг создавать только если в папке ежедневных архивов меньше 20 файлов. Типа уже неделю ежедневная архивация не происходит. С указанием числа архивов. А лучше емейл слать или смс.
С месячными архивами - аналогично. Если меньше 10 осталось - слать смс, что уже 2 мес нет ежемесячной копии.
Правда при запуске системы спамить будет каждый день первое время. Ну это издержки производства
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший