FastNetMon

Sunday 26 July 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()')


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

No comments :

Post a Comment

Note: only a member of this blog may post a comment.