作业调度的Python库,ssh

2024-03-29 09:16:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我想找一个用户空间工具(最好是在Python中——除非这样,在任何我可以轻松修改的地方,如果它还没有做我需要它做的事情的话)来代替我一直使用的一个短脚本,它可以做以下两件事:

  • 调查不到100台计算机(Fedora13,确实如此)的负载、可用内存,如果看起来有人在使用它们
  • 为作业选择好的主机,通过ssh运行这些作业。这些作业是任意命令行程序的执行,这些程序读写共享文件系统(通常是图像处理脚本或类似的cpu),有时是内存密集型任务。

例如,使用当前脚本,我可以在python提示符下

>>> import hosts
>>> hosts.run_commands(['users']*5)

或者从命令行

% hosts.py "users" "users" "users" "users" "users"

运行命令users5次(通过从配置文件中检查至少5台计算机上的cpu负载和可用内存,找到可以运行该命令的5台计算机之后)。除了我刚刚运行的脚本之外,不应该有任何作业服务器,也不应该有将运行这些命令的计算机上的工作守护进程或进程。

此外,我还希望能够跟踪作业、在失败时再次运行作业等,但这些是我实际上不需要的额外功能(在真正的作业调度程序中非常标准)。

我已经为Python找到了很好的ssh库,比如classhPuSSH,它们没有我想要的(非常简单的)负载平衡特性。另一方面,我想要的是秃鹰或泥泞,正如我澄清之前crispamares建议的那样,我想要更轻的东西。这些都是以正确的方式做的事情,但是从阅读它们的内容来看,它们听起来像是只有在我需要它们的时候才在用户空间中旋转它们,这将是恼人到不可能的。这不是一个专用群集,而且我在这些主机上没有根访问权限。

目前,我正计划在classh中使用一个包装器,当我需要知道如果找不到其他东西,它们有多忙时,可以对计算机进行一些基本的轮询。


Tags: 命令行用户命令程序脚本进程计算机作业
1条回答
网友
1楼 · 发布于 2024-03-29 09:16:13

Slurm是一个强大的作业调度程序,可以使用PySlurm在Python中编程。

我不知道是否比秃鹰更难部署。我也不知道它是否符合你的需要,但以防万一,我写下来。

网友
2楼 · 发布于 2024-03-29 09:16:13

你可以修改buildbot和twisted?这似乎是个好办法。

网友
3楼 · 发布于 2024-03-29 09:16:13

还有fabric,我很惊讶没人提起过。

相关问题 更多 >