详解用详解用Python实现自动化监控远程服务器实现自动化监控远程服务器
主要介绍了用Python实现自动化监控远程服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作
具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
最近发现Python课器做很多事情,在监控服务器有其独特的优势,耗费资源少,开发周期短。
首先我们做一个定时或者实时脚本timedtask.py,让其定时监控目标服务器,两种方式:
第一种:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2017/11/27 15:59
# @Desc : 定时任务,以需要的时间间隔执行某个命令
# @File : timedtask.py
# @Software: PyCharm
import time, os
from monitorserver import alltask
def roll_back(cmd, inc = 60):
while True:
#执行方法,函数
alltask()
time.sleep(inc)
roll_back("echo %time%", 5)
第二种:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2017/11/27 15:59
# @Desc : 定时任务,以需要的时间间隔执行某个命令
# @File : timedtask.py
# @Software: PyCharm
import time, os
def roll_back(cmd, inc = 60):
while True:
#监控代码文件所在位置
os.system('python /home/../monitorserver.py');
time.sleep(inc)
roll_back("echo %time%", 5)
做过监控应该都知道,我们主要监控服务器,负载均衡、磁盘、内存、CPU、网络接口(流量)、端口代码,主要针对这
些,我做了以下远程监控,第一种和第二种监控代码一样,代码monitorserver.py如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2017/11/27 15:59
# @Desc : 服务器监控代码
# @File : monitorserver.py
# @Software: PyCharm
import pexpect
import re
import time
import threading
"""
主方法
127.0.0.1#远程服务器ip地址
"""
def ssh_command(user, host, password, command):
ssh_new_key = 'Are you sure you want to continue connecting'
child = pexpect.spawn('ssh -l %s %s %s' % (user, host, command))
i = child.expect([pexpect.TIMEOUT, ssh_new_key, 'password: '])
if i == 0:
print 'ERROR!'
print 'SSH could not login. Here is what SSH said:'
print child.before, child.after
return None
评论0
最新资源