Поиск по сайту:

Как настроить задание Cron, которое запускается только в будние дни


В большинстве организаций вы работаете только в будние дни — с понедельника по пятницу. В таком случае некоторые задачи должны выполняться только в рабочие дни, а не в выходные. Это может быть такая задача, как отправка электронных писем, проверка посещаемости или создание резервных копий. Какой бы ни была задача, есть способ автоматизировать ее выполнение только в определенное время каждый день в будние дни. Для этого вам следует использовать утилиту Linux cron. Если вы не знаете, как использовать crontab для планирования некоторых задач, которые выполняются только в будние дни, читайте дальше, чтобы узнать.

Как планировать задачи с помощью Cron в Linux и Unix

Существуют различные способы использования cron для планирования задач. Но общий способ предполагает указание даты и времени. Для этого выполняется заданная команда. Секрет заключается в использовании 5 полей команды crontab, чтобы определить, в какой день команда должна выполняться.

Здесь хитрость заключается в использовании специальных символов и, в частности, дефиса (-), который дает список значений, используемых для данного поля.

Синтаксис crontab следующий:

Min Hour Day-of-month Month Day-of-week [command]

Мы сосредоточены на днях недели. Допустимые значения: от 0 до 6, где 0 — воскресенье, а 6 — суббота. Поэтому, чтобы указать команду, которая выполняется только в будние дни, мы устанавливаем Day-of-week на 1-5 без пробелов.

Команда будет:

* * * * 1-5 [command]

Данный синтаксис не указывает конкретное время, в течение которого должна выполняться команда. Если вам нужно настроить запуск каждый будний день в 10:00, команда будет выглядеть так:

0 10 * * 1-5 [command]

Теперь добавьте следующую команду в конец файла crontab, выполнив следующую команду:

crontab -e

Сохраните файл и выйдите.

Теперь у вас есть задание cron для текущего пользователя. Если вы запускаете скрипт, как в этом случае, убедитесь, что вы указали полный путь.

Другие варианты запуска команды в рабочие дни

Существуют различные способы задать команду, которая будет выполняться в будние дни. Приведем несколько примеров:

1. Дни недели данного месяца

Не каждый месяц рабочий день. Поэтому вы можете выполнять задание cron только в определенный месяц. Для этого вы можете указать месяц, используя номер месяца, где 1 представляет январь. Чтобы запустить одну и ту же команду только в январе в 10:00, измените ее, чтобы она отражала следующую:

0 10 * 1 1-5 [command]

2. Дни недели и конкретные дни данного месяца

Некоторые задачи можно запланировать на определенный день определенного месяца, если это будний день. Например, вы можете настроить сценарий резервного копирования, который запускается 5th января в будние дни и в заданное время. Команда для этого будет:

0 10 5 1 1-5 [command]

В предыдущем примере мы указали, что именованный скрипт должен выполняться в 10:00 5го дня января с понедельника по пятницу.

Суть в том, что вы можете изменить различные поля, чтобы настроить, когда команда должна выполняться только в будние дни. Вы можете выбрать, в каком месяце он должен работать, или указать диапазон. Кроме того, вы можете установить точное время или использовать интервал в определенный час в соответствии с вашими потребностями.

Заключение

Мы рассмотрели, как вы можете использовать crontab для планирования задания, которое выполняется только в будние дни. Кроме того, мы узнали о других способах, которыми вы можете поиграть с другими полями, чтобы более точно указать день месяца, час, минуту и месяц, когда должна выполняться ваша команда. Попробуйте!

Статьи по данной тематике: