用于作业调度的Python库ssh
|
我想找到一个用户空间工具(最好是在Python中-禁止该工具,如果它还没有满足我的需要,我可以很容易地对其进行修改)以替换一个我曾经使用过的简短脚本使用该功能可以完成以下两件事:
轮询少于100台计算机(Fedora 13,确实如此)以获取负载,可用内存,以及是否有人正在使用它们
为作业选择好的主机,并通过ssh运行这些作业。这些作业是任意命令行程序的执行,这些程序读取和写入共享文件系统-通常是图像处理脚本或类似文件-CPU,有时是占用大量内存的任务。
例如,使用当前脚本,我可以在python提示符下
>>> import hosts
>>> hosts.run_commands([\'users\']*5)
或从命令行
% hosts.py \"users\" \"users\" \"users\" \"users\" \"users\"
来运行命令users
5次(通过从配置文件中检查至少5台计算机上的cpu负载和可用内存,找到5台可以在其上运行命令的计算机之后)。除了我刚运行的脚本之外,应该没有作业服务器,并且在运行这些命令的计算机上也没有辅助守护程序或进程。
我还希望能够跟踪作业,在出现故障时再次运行作业等,但是这些是我实际上不需要的额外功能(在实际的作业计划程序中非常标准)。
我已经找到了适用于Python的很好的ssh库,例如classh和PuSSH,它们没有我想要的(非常简单的)负载平衡功能。我想要的另一面是Condor或Slurm,如crispamares所建议,在我澄清我想要更轻的东西之前。这些将以正确的方式进行操作,但是通过阅读有关它们的信息,听起来好像只有在我需要它们时才将它们在用户空间中旋转会令人讨厌甚至无法实现。这不是专用的群集,我在这些主机上没有root访问权限。
我目前正计划在classh周围使用包装器,对计算机进行一些基本的轮询,只要我无法找到其他东西就需要知道它们有多忙。
没有找到相关结果
已邀请:
6 个回复
感秆暴壳
物崎巩
呸溉
刷骸码
栖很钾是狠
奥李