Задания cron каждую минуту и чаще


Выполнять здания cron каждую минуту требуется довольно часто, например для синхронизации каких-то данных на сайте.


Настройка CRON на ежеминутное выполнение


Синтаксис части задания, определяющий периодичность выполнения выглядит как пять последовательных знаков :

* * * * * /opt/somescript.sh



В старых версиях crontab требуется указание одной минуты в качестве интервала через слэш. Обратная совместимость есть и этот синтаксис будет работать и в современных системах.

*/1 * * * * /opt/somescript.sh


Проверять периодичность выполнения cron заданий можно с помощью специального сервиса



Минута — это максимальный возможный минимум. Если требуется выполнять какой-то скрипт чаще единственным вариантом является написание собственной обертки. Например, на bash или python.

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



Выполнять CRON задание чаще, чем раз в минуту


Создаем дополнительный скрипт-обертку.

mcedit /opt/thirtyseconds.sh

#!/bin/bash

/opt/somescript.sh

sleep 30

/opt/somescript.sh



Делаем его исполняемым

chmod +x /opt/thirtyseconds.sh



Далее добавляем в CRONTAB

*/1 * * * * /opt/thirtyseconds.sh

После задания (если оно последнее) обязательно должна быть пустая строка, иначе возникнет ошибка.


Чтобы отслеживать результаты можно смотреть syslog, в него пишется информация о запуске CRON. Там будет видно каждый вызов CRON задания.



Пример вызовов CRON в syslog:

cron каждую минуту

Для большей наглядности, можно добавить в само задание логирование перенаправляя вывод команды в файл.



Про отслеживание выполнения CRON заданий

Сказать спасибо