Здравствуйте! Почему-то не работает правило
defineRule("check_server",
{
when: cron("*/10 * * * *"),
then: function()
{
runShellCommand(«цurl -s -o /dev/null -w \"%{http_code}\" http://192.168.99.99:1234",
{
captureOutput: true,
exitOnError: false,
callback: function(exitCode, capturedOutput)
{
if (capturedOutput !== "200")
{
dev["wb-mr6c_90/K5"] = true;
}
}
});
}
});
Добрый день.
Уточните пожалуйста, тут нет ошибки?
Ну и - что выдает команда в stdout?
Ошибки нет, хотя адрес и порт не настоящие. в консоли при запуске данной команды выводится 200, как и должно быть.
По видимому сюда опубликовал код с ошибкой. вот то, что на контроллере:
defineRule("check_server",
{
when: cron("*/2 * * * *"),
then: function()
{
runShellCommand("curl -s -o /dev/null -w \"%{http_code}\" http://192.168.99.99:1234",
{
captureOutput: true,
exitOnError: false,
callback: function(exitCode, capturedOutput)
{
if (capturedOutput !== "200")
{
dev["wb-mr14_55"]["K7"] = true;
}
}
});
}
});
Запускаю именно этот код без ошибок, но он не работает.
dust
7
сделайте так: “00 */2 * * * *”
Это тоже не работает. я пробовал ставить и в секунды и в минуты, а также менять на 3, 5,10 и т.д. реле всё-равно не включается.
dust
10
У меня такой работает:
defineRule("check_server",
{
when: cron("00 */1 * * * *"),
then: function () {
log("cron");
runShellCommand("curl -s -o /dev/null -w \"%{http_code}\" https://www.e1.ru/",
{
captureOutput: true,
exitCallback: function (exitCode, capturedOutput) {
log(capturedOutput);
}
});
}
});
сравните сами
Я попробую конечно, но только у вас нет условия когда выводить log. Он у вас выводится всегда при срабатывании cron.
dust
13
Я вижу, что возвращается 200 - дальше сами.
Спасибо! Всё заработало! Но вопрос, почему не работало моё правило, ведь ошибок в нём не было?
dust
15
Вот:
callback: function(exitCode, capturedOutput)
Сравните с моим.