我想编写一个python脚本来对linux服务器上运行的远程进程执行一些非常简单的“无代理”监视。
它将在psuedocode中执行以下任务:
for each remoteIPAddress in listOfIPAddresses:
log into server@remoteIPAddress via ssh
execute the equivalent of a 'ps -ef' command
grep the result to make sure a particular process (by name) is still running
执行此操作的一种方法是在子进程中使用python调用shell脚本并解析其输出。 这似乎效率很低。有没有更好的方法通过python库来做到这一点?
我在这里和其他地方通过研究找到的只有:
谢谢,请放轻松我,这是我的第一个问题: - )
答案 0 :(得分:3)
您可能会对Fabric库感兴趣。
答案 1 :(得分:1)
结帐paramiko。您可以使用它来ssh到服务器并运行命令。然后,您可以解析结果并使用它们执行您想要的操作。
答案 2 :(得分:0)
它可能比您正在寻找的更重,但Zenoss支持无代理监控。
paramiko和Fabric,在其他答案中提出,也是很好的选择。
答案 3 :(得分:0)
从上面的答案中获取线索,我调查了Fabric,发现以下介绍特别有趣/有帮助。它概述了三个库 - Fabric,Cuisine和Watchdog - 用于服务器监视和管理。 后人:
Using Fabric, Cuisine, and Watchdog for server administration in Python
答案 4 :(得分:0)
为什么不使用像Nagios这样的专用监控工具? Nagios通过NRPE插件和SSH插件等对代理和代理进行较少的监控。 尝试一下。