Кратко: планировщик заданий cron не поддерживает планирование заданий для запуска с интервалом в несколько секунд. В этой статье мы покажем вам простой трюк, который поможет вам запускать задание cron каждые 30 секунд или x секунд в Linux.
Вы новичок в планировщик заданий cron и хотите запускать задание каждые 30 секунд? К сожалению, cron этого не позволяет. Вы не можете запланировать задание cron для запуска каждый Икс второй. Крон поддерживает только временной интервал не менее 60 секунд (т.е. 1 минута). Чтобы запускать задание cron каждые 30 секунд, вам нужно использовать трюк, который мы объяснили ниже.
В этом руководстве мы также рассмотрим множество других примеров, запускать задание, команду или скрипт каждые x секунд. Но давайте начнем с того, как запускать задание cron каждые 30 секунд в Linux.
Запускать задание Cron каждые 30 секунд в Linux
Для выполнения вышеуказанной задачи создайте две записи в файле crontab. Первое задание будет запускать команда даты через каждую минуту (60 секунд), затем вторая запись использует команда сна задержать на определенное время (в данном случае 30 секунд) и вызвать свидание команда снова.
Вам необходимо добавить следующие записи в кронтаб (таблица cron) и откройте ее для редактирования, используя следующую кронтаб команда (т. -e
флаг разрешает редактирование):
# crontab -e
Добавьте в файл следующие записи cron.
* * * * * date>> /tmp/date.log * * * * * sleep 30; date>> /tmp/date.log
Теперь, если вы проверите содержимое /tmp/date.log файл, вы должны увидеть, что команда даты запускается каждый 30 секунды. Мы можем использовать кошачья команда для просмотра файла и проверки столбца времени для подтверждения следующим образом:
$ cat /tmp/date.log
Проверка запуска Cron каждые 30 секунд
Вы также можете наблюдать за обновлением файла в режиме реального времени. Для этого используйте хвостовая команда с -f
флаг.
$ tail -f /tmp/date.log
Просмотр содержимого файла в режиме реального времени
Запускать задание Cron каждые 10 секунд в Linux
Давайте посмотрим на другие примеры. Здесь показано, как запускать задание cron каждый 10 секунды. Хитрость заключается в том, чтобы просто поиграть с спать количество секунд команды:
* * * * * date>> /tmp/date.log * * * * * sleep 10; date>> /tmp/date.log * * * * * sleep 20; date>> /tmp/date.log * * * * * sleep 30; date>> /tmp/date.log * * * * * sleep 40; date>> /tmp/date.log * * * * * sleep 50; date>> /tmp/date.log
Еще раз, если мы посмотрим /tmp/date.log файл, он должен обновляться каждый 10 секунд на основе приведенных выше записей crontab:
$ tail -f /tmp/date.log
Вот еще один пример выполнения команда даты после каждого 15 секунды:
* * * * * date>> /tmp/date.log * * * * * sleep 15; date>> /tmp/date.log * * * * * sleep 30; date>> /tmp/date.log * * * * * sleep 45; date>> /tmp/date.log
Наконец, чтобы запускать задание cron каждый 20 секунд, у вас может быть что-то вроде этого:
* * * * * date>> /tmp/date.log * * * * * sleep 20; date>> /tmp/date.log * * * * * sleep 40; date>> /tmp/date.log
Теперь вы это знаете! Мы показали вам разные примеры запуска задания cron каждый раз. Икс второй в линуксе. Прочтите справочные страницы cron (запустив man cron
а также man crontab
команды) для получения дополнительной информации.
Если вы знаете какие-либо полезные советы или рекомендации по работе с командой cron, поделитесь ими в комментариях ниже.