как выполнить команду в первое, второе, третье и четвертое воскресенье месяца с помощью crontab [duplicate]

Этот вопрос уже содержит ответьте здесь:

У меня 4 сервера, и я хочу, чтобы каждый из них выполнял перезагрузку в воскресенье.

  • Сервер 1 - первое воскресенье месяца (первая неделя)
  • Сервер 2 - второе воскресенье месяца (2-я неделя)
  • Сервер 3 - третье воскресенье месяца (3-я неделя)
  • Сервер 4 - четвертое воскресенье месяца (4-я неделя)

как я могу сделать это с помощью Crontab? Спасибо! Дотан.

6
задан 4 July 2013 в 13:16
1 ответ

Первое воскресенье всегда будет между 1-м и 7-м числами, поэтому

10 1 1-7 * * test `date +\%a` == "Sun" &&  doSomething

будет запускать doSomething в 10 минут минутного в воскресенье, которое приходится на 1-е и 7-е. Точно так же второе воскресенье будет между 8-м и 14-м, третье - между 15-м и 21-м, а 4-е - между 22-м и 28-м, поэтому настройте день месяца на соответствующем сервере.

Обратите внимание, что тест требуется, потому что

Примечание: день выполнения команды может быть указан в двух полях - день месяца и день недели. Если оба поля ограничены (т. Е. не *), команда будет запущена, когда одно из полей соответствует текущему время аренды. Например, «30 4 1,15 * 5» приведет к тому, что команда будет запущена в 4:30 утра 1-го числа. и 15 числа каждого месяца плюс каждую пятницу.

12
ответ дан 3 December 2019 в 00:10

Теги

Похожие вопросы