Планирование задач по сети? - PullRequest
3 голосов
/ 15 апреля 2011

Можете ли вы порекомендовать инструмент / модуль python, который позволяет планировать задачи на удаленном компьютере в сети?

Обратите внимание, что решение должно иметь возможность не только запускать определенные задания / команды на удаленных машинах, но и проверять, что задания и т. Д. Все еще выполняются (например, рассмотрим случай, когда машина умирает после того, как ей была назначена задача). ?)

Ответы [ 3 ]

3 голосов
/ 15 апреля 2011

RPyC или Remote Python Call - это прозрачная и симметричная библиотека Python для удаленных вызовов процедур, кластеризации и распределенных вычислений. Вот пример из Википедии :

import rpyc
conn = rpyc.classic.connect("hostname")  # assuming a classic server is running on 'hostname'

print conn.modules.sys.path
conn.modules.sys.path.append("lucy")
print conn.modules.sys.path[-1]

# a version of 'ls' that runs remotely
def remote_ls(path):
    ros = conn.modules.os
    for filename in ros.listdir(path):
        stats = ros.stat(ros.path.join(path, filename))
        print "%d\t%d\t%s" % (stats.st_size, stats.st_uid, filename)

remote_ls("/usr/bin")

# and exceptions...
try:
     f = conn.builtin.open("/non/existent/file/name")
except IOError:
     pass

Чтобы проверить, не умер ли удаленный сервер после назначения ему задания, вы можете использовать метод ping класса Connection. Полный API описан здесь .

2 голосов
/ 15 апреля 2011

Fabric (http://docs.fabfile.org/en/1.0.1/index.html) - довольно хороший набор инструментов для различных задач sys-администратора и развертывания. Он поставляется с несколькими предопределенными задачами, но также дает вам возможность добавлять то, что вам нужно.

Я очень рекомендуюэто.

0 голосов
/ 15 апреля 2011

Должно быть в состоянии использовать Python WMI , для систем * NIX это оболочка вокруг SSH и CRON.

...