Если вдруг подобный вопрос уже задавался - извиняюсь. Как послать команду процессу PtokaX? Нужно что бы при открытии определённого bat файла птоха перезагружал текстовые файлы.
Panasonic, напишите и отправьте в чат команду:
Ksan, он же вроде задал условия для задачи:
Nickolya, я думаю, что ему важен не сам bat-файл, а именно перезагрузка текстовых файлов Птоки. А про bat он написал только потому, что не знал, что бы ещё придумать такого, чтоб перезагрузить эти самые файлы.
Как-то так, я думаю. Дальше моя экстрасенсорика не может углубиться.
усложняете, товарищи))
Оно, конечно, можно как-то написать скрипт для хаба, который будет смотреть события виндового журнала безопасности и выполнять какие-то действия при появлении строчек "..\*\определённый_файл.bat" , но вероятность, что оно такое нужно, "крайне мала" (нужно постараться, чтобы придумать юзкейс)
"Определённый bat-файл" - просто специально написанный, чтобы каким-то образом отправлять хабу произвольные команды.
Да, я тоже вижу 2 варианта
1) бат-файл создаёт в назначенном месте специальный файл + на самом хабе висит скрипт, который будет выполнять команду по наличию файла или по его содержимому (список команд на выполнение).
2) примитивная реализация дц-клиента (переделанный пингер), который заходит на хаб от имени админа, выполняет несколько команд и отключается.
второй вариант мне нравится больше (больше гибкости, один "компонент", не нужна циклическая проверка наличия и содержимого файла, проще сделать обработку ошибок)
Нужно только найти пингер на переделку =)
На примере покажу как я реализовал включение/выключение радио на сервере хаба, батники не привожу, там фантазия безгранична.
local sMenu = "= Меню хаба =\\X Радио\\"
tAllowed = { -- Профили, имеющие доступ
[0] = true, -- Owner
[1] = false, -- Admin
[2] = false, -- Operator
[3] = false, -- sVIP
}
function OnStartup()
sBot = SetMan.GetString(21)
end
function OpConnected(user)
if tAllowed[user.iProfile] then
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..sMenu.."Включить$<%[mynick]> #radioon||")
Core.SendToNick(user.sNick,"$UserCommand 1 3 "..sMenu.."Выключить$<%[mynick]> #radiooff||")
end
end
function ChatArrival(tUser,sData)
if tAllowed[tUser.iProfile] then
local data = sData:match("%b<>%s(.*)|")
local sCmd = data:match"(%S*)"
if sCmd == "#radioon" then
os.execute("c:/StartRadio.bat")
Core.SendToUser(tUser,"<"..sBot.."> Мой Господин, радио хаба включено.")
return true
end
if sCmd == "#radiooff" then
os.execute("c:/ShutDownRadio.bat")
Core.SendToUser(tUser,"<"..sBot.."> Мой Господин, Радио хаба выключено.")
return true
end
end
collectgarbage("collect")
end
прикольно))) "Core.SendToUser(tUser,"<"..sBot.."> Мой Господин, Радио хаба выключено.")"
Опишу ситуацию подробнее... Есть сайт и хаб. Регистрация на хабе реализована через регистрацию на сайте. Через PHP код добавляются пользователи в файл RegisteredUsers.xml. Однако птоха просто не видит новых пользователей до перезагрузки файлов или перезагрузки самой птохи. Я эту проблему решил принудительным завершением и запуском процесса птохи через bat файл, который в свою очередь включил в php код (функция exec). Но постоянный ребут хаба это не дело. Поэтому суть вопроса такова - как можно послать команду (на перезагрузку текст. файлов) на хаб через php код или бат файл?
Panasonic, и где вы были 4 дня, пока тут ломались копья? Может, давно бы уже решили вашу проблему, если бы сразу внесли ясность.
А по существу, решений несколько, я думаю. Одно из них - луа-скриптом хаба периодически считывать файл с вашими новыми юзерами (их ники и пароли), и, если их нет в среди уже регистренных, просто добавлять в текущий список регистренных юзеров. Открываете файл скриптом, парсите его, главное, получить оттуда последовательно сочетания ник - пароль (ну профиль, понятно, будет 2 (регистрированный юзер)), далее должен сработать примерно такой код:
Все проверки уже реализованы через PHP. Задача проста, после регистрации нового юзера просто перезагружать текстовые файлы. А вот про скрипт вы подали не плохую идею. Но дело в том, что я нуб в LUA. Можете помочь в написании? Суть в том, что бы каждый промежуток времени, который задаётся переменной, вызывалась функция перезагружающая текстовые файлы?
Ksan,
Артём, опс, да, 3.
Ведь собирался же писать 3, а откуда-то втиснулась двойка.
Вот же я троечник.. :(
Нет. Через определённый промежуток времени проверяется файл из определённой папки, который заполняется (или обновляется, или по новой записывается, всё зависит от алгоритма вашего скрипта на хабе и скрипта сайта) сайтом, если в файле есть изменения (скажем, размер изменился, или появилось слово-признак), то скрипт считывает информацию из файла, сортирует как нужно, записывает в таблицу зарегистрированных юзеров и сохраняет эту таблицу в файл. Последние 2 действия я как раз и показал выше в виде кода.
Panasonic, а ты смотрел его или нет? там есть InstaHub\webreg и там куча РНРшных скриптов, возможно там интересное для себя найдёшь.