Как запускать скрипт на VPS каждую секунду?

Добрый день
Имеем адрес: test.ru?opt=test
И имеем VPS с установленным IPS Manager
Подскажите реально ли (и как если да) запускать скрипт по заданному адресу каждую секунду или n-секунд ?
  • Вопрос задан
  • 3722 просмотра
Пригласить эксперта
Ответы на вопрос 7
Glueon
@Glueon
DevOps
Если грубо. то каждую секунду:
* * * * * for i in {1..60}; curl http://test.ru/?opt=test; sleep 1; done
Ответ написан
saintbyte
@saintbyte
Django developer
#!/bin/bash
while true
do
./run_me.sh
sleep 1
done
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
имхо пусть скрипт крутится в бесконечном цикле со слипами + пусть supervisord отслеживает жив ли скрипт и если он вдруг умрет перезапускает.
Ответ написан
Крон
*/1 * * * * root /home/www/test.ru/index.php; /bin/sleep 30; /home/скрипт; // 30секунд
*/1 * * * * root /home/www/test.ru/index.php; /bin/sleep 15; /home/скрипт; /bin/sleep 15; /home/скрипт; /bin/sleep 15; /home/скрипт; // 15секунд

Чтоб постоянно не прописывать opt=test
задайте в index.php
$opt = 'test';
Аналогично с 2-3 секунды, ставим минуту далее через sleep повторяем нужное кол-во раз
Ответ написан
akubintsev
@akubintsev
Опытный backend разработчик
Учитывайте, что при такой частоте может понадобится механизм блокировки запуска через крон, чтобы избежать одновременно выполнения множества процессов. Например, если скрипт будет выполняться 10 секунд, то за это время сами понимаете успеет ещё 9 запуститься, что может привести к печальным последствиям в некоторых случаях.
Ответ написан
Комментировать
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
Создайте скрипт такого вида:
#!/bin/bash
while :; do
curl blah & sleep 0.98;
done

В кроне пишите такое:
* * * * * username flock -n /tmp/script-lock -c /path/to/script.sh

У вас будет запускаться бесконечный скрипт, который запускает curl раз в секунду независимо от того, сколько curl работает. Только учтите, что если он будет работать больше секунды - то их миллион наплодится.
(а раз в минуту будет срабатывать watchdog для этого скрипта).

А вообще для этого есть snaked - https://github.com/kohts/snaked
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы