Cron работает каждые 15 секунд

Не могли бы вы посоветовать мне, что писать в crontab чтобы он выполнял определенную работу (для тестирования я буду использовать /usr/bin/chromium-browser ) каждые 15 секунд?

4 Solutions collect form web for “Cron работает каждые 15 секунд”

Вы не можете перейти к одной минуте с помощью cron. То, что вы можете сделать, каждую минуту запускает скрипт, который выполняет вашу работу, ждет 15 секунд и повторяет. Следующая линия crontab запускает some_job каждые 15 секунд.

 * * * * * for i in 0 1 2; do some_job & sleep 15; done; some_job 

Этот сценарий предполагает, что работа не займет больше 15 секунд. Следующий немного более сложный сценарий заботится о том, чтобы не запускать следующий экземпляр, если он слишком долго работал. Он полагается на date поддерживающую формат %s (например, GNU или Busybox, так что вы будете в порядке на Linux). Если вы положили его прямо в crontab, обратите внимание, что % символов должны быть записаны как \% в строке crontab.

 end=$(($(date +%s) + 45)) while true; do some_job & [ $(date +%s) -ge $end ] && break sleep 15 wait done [ $(date +%s) -ge $(($end + 15)) ] || some_job 

Тем не менее, я должен отметить, что если вам нужно выполнять задание так часто, как каждые 15 секунд, cron, вероятно, является неправильным подходом. Несмотря на то, что устройства хороши с недолговечными процессами, накладные расходы на запуск программы каждые 15 секунд могут быть незначительными (в зависимости от того, насколько требовательна программа). Вы не можете запускать приложение все время и выполнять его задачу каждые 15 секунд?

Разный подход, чем другие: запустите 4 cronjobs, каждый из которых пошатнулся на 15 секунд:

 * * * * * sleep 00; some_job * * * * * sleep 15; some_job * * * * * sleep 30; some_job * * * * * sleep 45; some_job 

Просто имейте в виду, что если по какой-либо причине работа занимает больше 15 секунд, у вас могут возникнуть проблемы (условия гонки, заполненная таблица процессов и т. Д.).

Короче говоря, cron не так гранулирован со временем. Самый короткий период, который вы получите, – 1 мин.

 # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .----- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * command to be executed * * * * /usr/bin/chromium-browser 

Однако вы можете написать скрипт, который будет запускаться каждые 15 секунд …

В вашем кронтабе:

 * * * * /usr/bin/chromium-browser_starter 

Затем в /usr/bin/chromium-browser_starter :

 #!/bin/sh # chromium-browser_starter # # Schedules /usr/bin/chromium-browser to run every 15 seconds for a minute. # Intended to be called every minute through crond(8). for ((secs=0; secs<46; secs+=15)); do (sleep $secs; /usr/bin/chromium-browser "$@") & done wait 
  • Не все сценарии оболочки, работающие с crontab
  • sudo source: команда не найдена
  • Есть ли недостатки / последствия для добавления запланированных задач непосредственно в / etc / crontab вместо использования команды crontab?
  • Откуда эта работа munin cron?
  • Может ли работа crontab работать одновременно с собой?
  • Почему мой кронтаб не срабатывал?
  • Добавить задание CRON из командной строки?
  • crontab не запускает один скрипт
  • Как показать диалог Java, когда cron запускает программу Java?
  • Задача Cron запускаться каждую минуту с 11:00 до 6:00
  • Вход Crontab с часовым диапазоном, проходящим в полночь
  • Linux и Unix - лучшая ОС в мире.