Системный таймер OnCalendar каждую минуту, заканчивающийся на 5
СOnCalendar
systemd timer, я могу создать что-то подобное, чтобы оно запускалось каждые 5 минут.
OnCalendar=*:0/5
Можно ли запускать его только каждую минуту, заканчивающуюся на 5 (00:05, 00:15, 00:25...)?
И/или только каждую минуту, заканчивающуюся 0 (00:00, 00:10, 00:20...)?
Основная цель — установить таймер на двух серверах, чтобы каждый из них работал в свободное время; в случае сбоя одного другой будет запускаться как минимум каждые 10 минут (вместо 5).
2 ответа
Решение:
OnCalendar=*:5/10
что эквивалентно*:5,15,25,35,45,55
.
Чтобы быть уверенным в результате, используйте что-то вроде:
systemd-analyze calendar --iterations=8 '*:5/10' | grep Iter
Iter. #2: Sun 2022-02-20 00:25:00 CET
Iter. #3: Sun 2022-02-20 00:35:00 CET
Iter. #4: Sun 2022-02-20 00:45:00 CET
Iter. #5: Sun 2022-02-20 00:55:00 CET
Iter. #6: Sun 2022-02-20 01:05:00 CET
Iter. #7: Sun 2022-02-20 01:15:00 CET
Iter. #8: Sun 2022-02-20 01:25:00 CET
Я не уверен, что это варьируется от дистрибутива к дистрибутиву. В любом случае я использую RHEL8. Попробуй это:
[Timer]
OnCalendar=*-*-* *:05,15,25,35,45,55:00
Использоватьsystemctl daemon-reload
команда, чтобы убедиться, что systemd знает об изменениях.
Примечание. Не следует редактировать файлы в каталоге /usr/lib/systemd. С помощью systemd вы можете скопировать файл модуля в каталог /etc/systemd/system и редактировать эту копию.