简述:
用python开发了用于监控的传统监控客户端,现在主要解决对windows服务器的监控问题。运行很简单,远程登录到该windows服务器安装python,然后把监控端client.py启动起来,监控服务器就会自己来采集被监控主机的数据了,所有正常监控的前提当然都是本client.py正常运行。
问题来了:你的监控端在别人的服务器上跑,由于各种原因,它总会被有意无意的干掉,然后该服务器的维护人员跑来跟你讲你们的监控出问题了,你一看我靠我的“间谍”怎么挂了。而且他还经常抱怨:你这个监控端启动太麻烦了,一般维护人员根本搞不来嘛。此时你一定会咬着牙想:是该优化下这个东西了!
总结起来就是:
- 能否把这个监控客户端搞成exe文件,双击即可运行(多简单),即从python到exe。
- 能否让它启动之后在后台运行,不要在桌面上开个黑框框(既难看又不能关闭)。
- 能否把它搞成随系统启动的,也就是服务器重启它也得跟着重启,不然维护人员又该找你麻烦了。
把问题都理出来做起来就方便多了,怎么做呢? 一个一个来呗...
首先针对问题1:
网上一搜,果然一大堆模块可以把python转换成exe文件的,主流的有Pyinstaller,Py2exe,cx_Freeze等。刚开始用了Pyinstaller,都说这个最简单,搞了好几天我靠,我用的webpy框架刚好不支持,各种报错,几天过去了还没搞成,算了放弃它(也算忍痛割爱吧)。抱着试试的心态用了下Py2exe,虽然也是几经波折(各种报错各种试验啊),但还好最后是成功了,而且研究越深越觉得这个还是蛮有意思的。关于py2exe的折腾另外开博文吧,可能会很长很长呢。好了,问题1算是解决了:成功的从client.py转化成client.exe。
接下来搞问题2:
网上一搜,果然又是一大堆方法教你让exe,bat等等后台运行的,但是黑框框还是要一闪而过的,算了就这样吧。PS:你总不能赶尽杀绝(太残忍),不让露面可以闪一下总算太过份吧。我是写了一个脚本bat里调用这个client.exe,前边加了一段脚本语言用来实现一闪而过(坚决不让黑框框来桌面)。
最后解决问题3:
又是网上一搜,又是一大堆方法让你把exe或者bat搞成随系统启动的,刚开始我用的方法是添加“计划任务”(这个最简单并且也是可以的),后来发现py2exe