Назад | Перейти на главную страницу

Cron недоступен, что использовать вместо этого?

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

Заранее спасибо :)

Обновление 1: Да, я имею в виду серверы Linux, HP-Ux и Solaris, доступен Bash> 3.x.

Если вам разрешено использовать SSH с сервера с Cron, вы можете запускать периодические задания удаленно.

Как насчет фонового сценария без прерывания в бесконечном цикле со сном в конце?

Пример:

$ cat runme.sh
#!/bin/bash
while true; do
  echo "Do useful stuff here"
  sleep 86400
done
$ nohup ./runme.sh &

Это будет печатать «Делай здесь полезные вещи» один раз в день.

Предложение ktower сработает, и я не могу придумать лучшего способа, но если бы у вас был реальный выбор, вы бы не выбрали это решение. Лучшее предложение, которое я могу сделать, - переместить все это на хост, который предоставляет необходимые вам инструменты и средства. Обходные пути обычно вызывают больше проблем, чем решают. При таком большом выборе хостинг-провайдеров действительно нет причин соглашаться на временное решение.

Вы можете использовать at планировщик?

Добавление в ответ ktower. Если вам нужно ехать по этому маршруту и ​​вам нужен более частый интервал (например, запускать что-то каждые 5 минут), вы увидите некоторое смещение во времени. Чтобы свести к минимуму это, вы можете использовать строку вроде (при условии, что вы используете Linux)

sleep $((60 - `date +%s` % 60))

где «60» - это количество секунд, которое вы хотите подождать.

Как заметил Джон Дж., Способ выиграть эту игру - не играть; то есть запускать ваши задания на серверах, которые позволяют / cron. Из перечисленных обходных путей идея запустить cron / Task Scheduler для запуска команд SSH с отдельного сервера, вероятно, является наилучшей, если у вас есть доступ по SSH. (У меня пока недостаточно репутации, чтобы проголосовать за). Из других: at обычно отключается с помощью cron; и любой администратор, обладающий достаточными ограничениями, чтобы запретить использование / cron, будет очень недоволен вашими попытками обойти политику, выполняя сценарии оболочки в цикле ...