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

Как запускать задание Cron каждые 10, 20 и 30 секунд в Linux


Краткая информация. Планировщик заданий cron не поддерживает планирование выполнения заданий с интервалом в несколько секунд. В этой статье мы покажем вам простой трюк, который поможет вам запускать задание cron каждые 30 секунд или x секунд в Linux.

Вы новичок в планировщике заданий cron и хотите запускать задание каждые 30 секунд? К сожалению, cron не позволяет этого сделать. Вы не можете запланировать запуск задания cron каждые x секунды. Cron поддерживает только интервал времени не менее 60 секунд (т. е. 1 минуты). Чтобы запускать задание cron каждые 30 секунд, вам нужно использовать трюк, который мы объяснили ниже.

В этом руководстве мы также рассмотрим множество других примеров запуска задания, команды или сценария каждые x секунд. Но давайте начнем с того, как запускать задание cron каждые 30 секунд в Linux.

Запускать задание Cron каждые 30 секунд в Linux

Чтобы выполнить вышеуказанную задачу, создайте две записи в crontab. Первое задание будет запускать команду даты через каждую минуту (60 секунд), затем вторая запись использует команду сна для задержки на указанное время (в данном случае 30 секунд) и вызова команду date еще раз.

Вам необходимо добавить следующие записи в crontab (таблицу cron) и открыть ее для редактирования с помощью следующей команды crontab (-e флаг разрешает редактирование):

crontab -e

Добавьте в файл следующие записи cron.

* * * * * date>> /tmp/date.log
* * * * * sleep 30; date>> /tmp/date.log 

Теперь, если вы проверите содержимое файла /tmp/date.log, вы увидите, что команда date запускается каждые 30 секунд. Мы можем использовать команду cat для просмотра файла и проверки столбца времени для подтверждения следующим образом:

cat /tmp/date.log

Вы также можете наблюдать за обновлением файла в режиме реального времени. Для этого используйте команду Tail с флагом -f.

tail -f /tmp/date.log

Запускать задание Cron каждые 10 секунд в Linux

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

* * * * * 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

Вот еще один пример выполнения команды date через каждые 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 и управлять ими в Linux
  • Cron против Anacron: как планировать задания с помощью Anacron в Linux

Теперь вы это знаете! Мы показали вам различные примеры запуска задания cron каждые x секунды в Linux. Прочтите справочные страницы cron (выполнив команды man cron и man crontab) для получения дополнительной информации.

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