FastNetMon

Показаны сообщения с ярлыком RPyC. Показать все сообщения
Показаны сообщения с ярлыком RPyC. Показать все сообщения

воскресенье, 26 июля 2009 г.

RPyC

Хм... конечно. не мануал, но показать "как это работает" хочется-прехочется. Имеем два узла с запущенным classic_server.py: локальный и удаленный, вот так легко выполнять на них команды:

python2.5
Python 2.5.4 (r254:67916, Apr 4 2009, 17:55:16)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import rpyc
>>> local = rpyc.classic.connect('localhost')
>>> local.modules.os.uname()
('Linux', 'nrg-desktop', '2.6.24-22-generic', '#1 SMP Mon Nov 24 18:32:42 UTC 2008', 'i686')
>>> remote = rpyc.classic.connect('ultrasam.ru')
>>> remote.modules.os.uname()
('Linux', 'panel.nrg.name', '2.6.18-6-xen-686', '#1 SMP Sun Feb 10 22:43:13 UTC 2008', 'i686')


Исполнение кода на удаленной машине:

>>> hello_txt = """
... import os
... print "Hello from", os.getcwd()
... """
>>> import os
>>> exec hello_txt
Hello from /home/nrg/rpyc-3.0.6
>>> remote.execute(hello_txt)


И на удаленной машинке выплыло:
Hello from /usr


А вот это меня убило, заживо :)

>>> remote.execute('import urllib')
>>> remote.execute('print urllib.urlopen("http://ya.ru").read()')
>>> local.execute('import urllib')
>>> local.execute('print urllib.urlopen("http://ya.ru").read()')


Потрясающе, у меня нету слов, честно! :)

Установка RPyC

Python

Смотрим версию Питона:
python -V
Python 2.4.4


Если она 2.4, то сносим 2.4й sudo apt-get remove python2.4 (разумеется, если у вас никакого софта от него не зависит) и ставим 2.5й: sudo apt-get install python2.5 python2.5-dev (для Дебияна)

RPyC

Стягиваем файл: rpyc-3.0.6.tar.gz с http://sourceforge.net/projects/rpyc/files/
wget http://downloads.sourceforge.net/project/rpyc/main/3.0.6/rpyc-3.0.6.tar.gz?use_mirror=sunet
tar -xf rpyc-3.0.6.tar.gz
cd rpyc-3.0.6
sudo python2.5 setup.py install (или просто python, если в это время 2.4 версия будет удалена)



Где почитать?
http://www.ibm.com/developerworks/ru/library/l-rpyc/index.html?ca=drs-ru-0707
http://rpyc.wikidot.com/