s.lobanov Опубликовано 26 октября, 2010 · Жалоба Задача весьма простая, один сервер должен инициировать запуск скрипта с параметрами на другом сервером, получить от него ответ. Понятно, что можно это сделать тупо по ssh, но хочется что-то более изящное типа какого-нибудь xml-request(чтобы не придумывать свой протокол как передавать массив данных и получать массив в ответ), но поднимать apache не очень хочется. Может есть какой-то специальный протокол, созданный для того, чтобы с одного сервера дёргать скрипты на другом? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sdy_moscow Опубликовано 26 октября, 2010 · Жалоба Вы как блондинка прямо... "Хочу родить ребенка, но не хочу быть беременной..." Определитесь. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
GloooM Опубликовано 26 октября, 2010 · Жалоба Ну самое простое это посмотреть в сторону xinetd, туда свой скрипт приляпать и на нужный порт повесить. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
keshalg Опубликовано 26 октября, 2010 · Жалоба у ребят с local.com.ua в последних сборках старгейзера (фриишный биллинг) есть спец.демон для исполнения скриптов на удаленных серверах. Сам пока не ковырял, вполне устраивает исполнение их по ssh с авторизацией по ключу. Правда а зачем что-то выдумывать? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
xeb Опубликовано 26 октября, 2010 · Жалоба более изящное типа какого-нибудь xml-request(чтобы не придумывать свой протокол как передавать массив данных и получать массив в ответ)python'ий pickle ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Alteron Опубликовано 26 октября, 2010 · Жалоба http://subnets.ru/blog/?p=34 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
terrible Опубликовано 27 октября, 2010 · Жалоба я буду это на апаче делать полюбобу. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
mschedrin Опубликовано 27 октября, 2010 · Жалоба Я так понимаю, что вопрос стоит в том чтобы не программировать ничего нового, а воспользоваться готовым софтом, если такой есть. Все предложенные методы завязаны на программирование. Так можно и свой rpc написать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vitalyb Опубликовано 27 октября, 2010 · Жалоба http://www.ibm.com/developerworks/library/ws-pyth10.html Сервер: #!python import SimpleXMLRPCServer class Server: def ping(self, msg): return "pong: %s" % (str(msg),) srv_object = Server() server = SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 8888)) server.register_instance(srv_object) print "Listening on port 8888" server.serve_forever() Клиент: #!python import xmlrpclib server = xmlrpclib.ServerProxy("http://localhost:8888/") print server.ping(["hello world"]) Получится: $ python srv.py Listening on port 8888 localhost - - [27/Oct/2010 11:16:09] "POST / HTTP/1.0" 200 - $ python cli.py pong: ['hello world'] Если надо шифрование, логины, пароли, списки доступа, многопоточность, то прийдется немного дописать. Например многопоточность. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
EvilShadow Опубликовано 27 октября, 2010 · Жалоба А всё-таки, чем длинные скрипты с дополнительными библиотеками красивее и изящнее решения в лоб - ssh? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
deep_admin Опубликовано 27 октября, 2010 · Жалоба что-то вроде такого? !/usr/bin/expect -f set HOST "192.168.1.1" set PASS "mypassword" set USER "root" set ENC "KOI8-R" set CMD "ip route ls" set timeout -1 spawn luit -encoding $ENC ssh -l $USER $HOST match_max 100000 expect -exact "$USER@$HOST's password: " send -- "$PASS\r" expect "Last login: *\r\r *$USER*" send -- "$CMD\r" expect "\r" expect "*default*" exit Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 27 октября, 2010 · Жалоба deep_admin Так я умею, но выглядет это как костыль, в принципе (x)inet.d интересный вариант, надо будет попробовать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
deep_admin Опубликовано 27 октября, 2010 · Жалоба deep_admin Так я умею, но выглядет это как костыль, в принципе (x)inet.d интересный вариант, надо будет попробовать. в случае с xinetd вам нужен свой серверный скрипт писать кроме клиентского, а это потребует установки разного, может и ненужного доп. софта в случае с ssh - ничего вообще не надо. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
GloooM Опубликовано 28 октября, 2010 (изменено) · Жалоба в случае с xinetd вам нужен свой серверный скрипт писать кроме клиентского Ну по идее же можно просто целевой скрипт чуть подправить (если вообще необходимо) и скормить его в xinetd, и ненужно писать скрипт для запуска другого скрипта. Изменено 28 октября, 2010 пользователем GloooM Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...