Запуск БАС через веб интерфейс
-
Обдумываю следующую задачу. Запуск скрипта с указанием данных через веб интерфейс
Дано:
- Сервер Windows. Скомпилированный скрипт, который парсит сайт по ссылке, результат отправляет на email
- Виртуальный хостинг Linux. Веб интерфейс с формой, в форму вставляется ссылка, после чего ссылка сохраняется в БД
- Отдельный скрипт на BAS регулярно проверяет базу, если появилась новая ссылка он запускает скомпилированный скрипт 1
Может есть более простые способы? К примеру, без второго скрипта, чтобы скомпилированный файл запускался при помощи команды с виртуального хостинга, то есть напрямую?
Заранее спасибо за ответы.
-
@romanbiz
это только передача данных/параметров? может быть скрипту нужно просто ждать появления в БД.
я использую бесплатный веб хостинг с пхп и SQL в местном гандурасе
для одной строки базу данных?
-
@ruzne вот в том то и дело что я не хочу чтобы скрипт ждал, создавая при этом нагрузку на сервер запущенным БАС.
В идеале я бы хотел чтобы скрипт запускался при помощи команды от внешнего вебсервера.
-
@romanbiz я не уверен но не думаю что басждун создает нагрузку. я бы делал запрос к серверу с базой и если приходил пустой результат жlал допустим 5 миут. а на сервере с базой чтото вроде
$result = mysql_query("SELECT url FROM url_list LIMIT 1") $result = mysql_fetch_array($result); if($result > 0){ print $result[url]; }else{ print ""; }
другой вопрос если реал тайм нужен, есть же node.js можно вебсокет намутить
-
На сервере ставим скомлированный скрипт, готовый получать данные из нужной бд.
Ставим питон с flask/ ноду с express, делаем 1 роут, при котором запускаем по пути ехе шник баса без интрефейса.Прокидываем порт если нужно, теперь имеем возможность запускать скрипт get запросом.
В своей админке делаем кнопку которая делает невидимый для браузера (без перехода) гет запрос с помощью AJAX
Ну и все.
-
Если веб сервер будет на виндовсе, есть в пхп такая фишка как exec и вот она уже может запускать ехе скажем, хотя с точки зрения потребления ресурсов и здравого смысла куда эфективней будет простой лоадер на c+/delphi/fpc и.т.д
-
0_1521237302747_get_bass.exe вот простой софтик, если сервер отдает заданный текст скрипт ждет, вроде null или 1, когда нужно запустить скрипт ответ от сервера должен содержать любой текст кроме заданного выше, весит 8-9кб памяти и проц не кушает, можно конечно за морочиться еще что бы он писал данные для запуска в ресурсы или перемещал в буфер и бас это подбирал и.т.д......
-
@romanbiz нуу можно все укоротить. настроить winrm.
юзаешь по докам
для запуска и указания url пробрасываешь повершелл скрипт с таким вот кодом$url = '2222222' (Get-Content 'c:\actual.xml') -replace '1111111', $url | Set-Content 'c:\actual.xml' cmd /c 'bas.exe' --silent
все что тебе нужно это повершел версии 2.0 и выше на своем пк и сервере, без гемора с нодами питонами вебами и базами
-
@DrPrime подскажите пожалуйста, а может ли BAS используя node JS и пакет NPM для подключения к telegram bot ждать команды из телеграм бота? Насколько я понимаю, если на компьютере запустить node js и потом js скрипт через неё, то таким образом так можно сделать (смотрел видео как таким образом поднимают телеграм ботов).
А если через BAS запустить node js? Нужно ли постоянно будет обращаться куда-то или достаточно будет запустить скрипт и он будет ждать команду?
Заранее спасибо за ответ.
-
@romanbiz
Можно, но сложно.
В телеграм ботах есть 2 метода.
Первый(дефолтный) - getUpdates - хранит все команды от бота на сервере, которые потом нужно получать и обрабатывать.
Второй -WebHooks - отправляет все команды на Ваш сервер для обработки, не сохраняя их на серверах телеграма.
Но для второго метода обязательно должен быть https (сертификат и пр.), что бы телеграм перенаправлял туда запросы от бота.
В теории обработчик можно повесить в басе на node js, но с этим нужно повозиться.
-
подскажите пожалуйста, а может ли BAS используя node JS и пакет NPM для подключения к telegram bot ждать команды из телеграм бота?
Можно модифицировать скрипт из соседней темы.