У меня есть сценарий, который нужно запускать каждые пять секунд. Я знаю, что cron может выполнять задания с минуты, но есть ли способ запускать что-то каждую секунду?
У вас может быть задание cron запускать скрипт каждую минуту, которая запускает 12 фоновых процессов:
* * * * * ~/dostuff.sh
dostuff.sh:
(sleep 5 && /path/to/task) &
(sleep 10 && /path/to/task) &
(sleep 15 && /path/to/task) &
(sleep 20 && /path/to/task) &
(sleep 25 && /path/to/task) &
(sleep 30 && /path/to/task) &
(sleep 35 && /path/to/task) &
(sleep 40 && /path/to/task) &
(sleep 45 && /path/to/task) &
(sleep 50 && /path/to/task) &
(sleep 55 && /path/to/task) &
(sleep 60 && /path/to/task) &
[ ! d2] Мой вопрос, однако, заключается в том, что вы можете делать с EARTH каждые 5 секунд?
Просто используйте цикл:
while true ; do ./your-script & sleep 5; done
Это запустит ваш скрипт в качестве фонового задания, спящий на 5 секунд, затем снова запустится. Вы можете использовать Ctrl-C, чтобы прервать его, или использовать любое другое условие вместо true, например. ! test -f /tmp/stop-my-script только для цикла, пока файл /tmp/stop-my-script не существует.
Вы можете использовать GNU-пакет mcron, альтернативу «Vixie cron».
http://www.gnu.org/software/mcron/manual/mcron.html#Top
«Может быть легко разрешено задавать более тонкие временные точки, то есть секунды. В принципе это может быть увеличено до микросекунд, но это не реализовано».
Минимальная конфигурация в cron - минуты, вы не можете установить ее в течение 5 секунд. Вы можете использовать кварц, который позволяет секунд. http://www.quartz-scheduler.org/docs/tutorials/crontrigger.html
Используйте cacti для мониторинга маршрутизатора и коммутатора, но Cron разрешает использовать как минимум одну минуту, поэтому, если один порт / устройство выключен, предупреждение не появится до двух минут.
Я делал это очень успешно (и конечный результат запускает недели за раз, пока машина не перезагружена). Что касается того, что я делал прямо сейчас, обновляя информацию и помещая ее в кеш - обновляя каждые 10 секунд.
#!/bin/sh
SLEEP=5
# do stuff
sleep $SLEEP
# do stuff
sleep $SLEEP
# do stuff
sleep $SLEEP
# do stuff
sleep $SLEEP
# echo and restart...
exec $0
«exec $ 0» перезапускает скрипт, но заменяет исполняемый скрипт. Его можно начать с линии crontab @reboot.
У вас может быть задание cron запускать скрипт каждую минуту, которая запускает 12 фоновых процессов:
* * * * * ~/dostuff.sh
dostuff.sh:
(sleep 5 && /path/to/task) &
(sleep 10 && /path/to/task) &
(sleep 15 && /path/to/task) &
(sleep 20 && /path/to/task) &
(sleep 25 && /path/to/task) &
(sleep 30 && /path/to/task) &
(sleep 35 && /path/to/task) &
(sleep 40 && /path/to/task) &
(sleep 45 && /path/to/task) &
(sleep 50 && /path/to/task) &
(sleep 55 && /path/to/task) &
(sleep 60 && /path/to/task) &
[ ! d2] Мой вопрос, однако, заключается в том, что вы можете делать с EARTH каждые 5 секунд?
У вас может быть задание cron запускать скрипт каждую минуту, которая запускает 12 фоновых процессов:
* * * * * ~/dostuff.sh
dostuff.sh:
(sleep 5 && /path/to/task) &
(sleep 10 && /path/to/task) &
(sleep 15 && /path/to/task) &
(sleep 20 && /path/to/task) &
(sleep 25 && /path/to/task) &
(sleep 30 && /path/to/task) &
(sleep 35 && /path/to/task) &
(sleep 40 && /path/to/task) &
(sleep 45 && /path/to/task) &
(sleep 50 && /path/to/task) &
(sleep 55 && /path/to/task) &
(sleep 60 && /path/to/task) &
[ ! d2] Мой вопрос, однако, заключается в том, что вы можете делать с EARTH каждые 5 секунд?
У вас может быть задание cron запускать скрипт каждую минуту, которая запускает 12 фоновых процессов:
* * * * * ~/dostuff.sh
dostuff.sh:
(sleep 5 && /path/to/task) &
(sleep 10 && /path/to/task) &
(sleep 15 && /path/to/task) &
(sleep 20 && /path/to/task) &
(sleep 25 && /path/to/task) &
(sleep 30 && /path/to/task) &
(sleep 35 && /path/to/task) &
(sleep 40 && /path/to/task) &
(sleep 45 && /path/to/task) &
(sleep 50 && /path/to/task) &
(sleep 55 && /path/to/task) &
(sleep 60 && /path/to/task) &
[ ! d2] Мой вопрос, однако, заключается в том, что вы можете делать с EARTH каждые 5 секунд?