Указание «всех нечетных значений» в crontab?
Вопрос
В crontab я могу использовать звездочку для обозначения каждого значения или «*/2» для обозначения каждого четного значения.
Есть ли способ указать каждый странный ценить?(Подойдет ли что-то вроде «1+*/2»?)
Решение
В зависимости от вашей версии cron вы сможете делать (скажем, часами):
1-23/2
Просматривая раздел РАСШИРЕНИЯ на странице руководства crontab(5):
Ranges can include "steps", so "1-9/2" is the same as "1,3,5,7,9".
Я подозреваю, что для более портативного решения вам просто нужно использовать простой список:
1,3,5,7,9,11,13,15,17,19,21,23
Но, возможно, было бы проще обернуть вашу команду в сценарий оболочки, который немедленно завершит работу, если он не будет вызван в нечетную минуту.
Другие советы
Каждая нечетная минута будет:
1-59/2 * * * *
Каждая четная минута будет:
0-58/2 * * * *
Пытаться
1-23/2
Судя по вашему вопросу, я предполагаю, что это Викси Крон.Я сомневаюсь, что это будет работать с любым другим cron.
Когда я прочитал руководство, «1-23/2» (часы) помогло бы.
Работает на Cronie даже с 5 -минутным интервалом, например,
3-58/5 * * * * /home/test/bin/do_some_thing_every_five_minute
Я понимаю, что этому уже почти 10 лет, но у меня были проблемы с получением 1-23/2 за каждые два часа нерегулярной работы.
Для всех пользователей, где, точный точность нечетного часа не требуется.Я сделал следующее, что соответствовало потребностям моей команды.
59 */2 * * *
Выполняйте задание каждые два часа, на 59-й минуте.