Для тех, кто хочет отредактировать этот ответ, причина, по которой вы не просто используете поле дня недели, состоит в том, что если и день месяца, и день недели ограничены (т. Е. Нет *), команда будет запущена, когда один из совпадений ,
Я обнаружил, что должен был сбежать из% u, поэтому:date +\%u
Антоний Д'Андреа
3
Вы можете избежать запуска внешнего скрипта, используя комбинацию дня недели и дня недели:
# Run on every second Wednesday of the month
0 4 8-14 * Wed job.sh
Это также позволяет избежать запуска другой внешней программы. 8-14 выбирает все дни, которые соответствуют второй неделе месяца. Тогда это отфильтровывает только ту среду.
Ответы:
Моя man-страница для crontab (которую я, к сожалению, не могу найти в Интернете) дает следующий пример:
Приспосабливая это к вашим целям ...
источник
*
), команда будет запущена, когда один из совпадений ,date +\%u
Вы можете избежать запуска внешнего скрипта, используя комбинацию дня недели и дня недели:
Это также позволяет избежать запуска другой внешней программы. 8-14 выбирает все дни, которые соответствуют второй неделе месяца. Тогда это отфильтровывает только ту среду.
источник
Использование cron само по себе невозможно, но вы можете вызывать скрипт раз в неделю, который выполняет тест:
В crontab каждую секунду запускайте second_wed.sh в 12.00:
В second_wed.sh:
источник
Основываясь на этом ответе, вы можете сделать:
источник
Для серверов CentOS 7 этот синтаксис мне подходит. Обратите внимание на пробелы вокруг
[
и]
. Мне понадобилось время, чтобы понять.test.sh
Файл запускается в 13:07 / 13:07 во вторую среду месяца. (0 = воскресенье, 1 = понедельник, 2 = вторник, 3 = среда и т. Д.)источник
Пожар в 10:15 в третью пятницу каждого месяца:
0 15 10 ? * 6#3
Источник: https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm
источник