在linux中,shell/ target=_blank class=infotextkey>shell脚本可用来做系统管理。
shell脚本中调用系统相关命令,用于分析系统负载、运行状况是相当不错的。
不过,shell比较适合对单台机器的系统数据分析,如果需要对多台机器同时监控,则可以考虑借助python完成一些复杂的工作,如:报告的输出,监控服务器等。
下面以实例来说明。
假如要远程监控多台mysql服务器的CPU、内存使用状况。
第一步,用shell脚本来实现。
首先,写一个mysqlMon.exp文件:
接下来就是循环调用这个脚本来实现多台的服务器的监控。
且要求每个mysql服务器中实现了monSQL命令。
缺点:
每次执行需要很长的时间,而且对于命令的结果输出不能简便的控制。
而且当执行其他的命令,如果结果比较复杂,格式很难控制。
尤其是shell的字符串处理不是很方便,而且格式很有讲究。
同样的场景,同样的你,采用python将变得简单且易于扩展,不信吗?
参考如下代码试试看:
使用paramiko实现的SSHClient简化了工作,不用expect来做交互式的事情。
而且命令可以执行的很复杂,对于执行结果可以做格式化输出,python对字符串处理的能力超级棒。
可以将以上所有连接做成一个连接池,之后可以执行其他的命令,提高了可控性与扩展性。
有意研究python的朋友,请前往本站的python编程栏目,那里有丰富的技术文章等着您来参阅。