`
lichuanbao
  • 浏览: 127246 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python写的一个服务器自动巡检工具

阅读更多
因为公司服务器需要每半个月巡检一次,还要将巡检结果生成图片贴到巡检报告中,每次手动操作相当麻烦。恰好刚学python,于是使用python和java写了一个半自动化的程序,javaq的作用是为了生成巡检图片。python可以自动依次登录服务器,执行巡检并在本地生成文本格式的巡检结果,java读取这些文本巡检结果生成图片。

下面是代码,欢迎讨论。
#!/usr/bin/evn python
#*-* encoding:utf-8 -*-
#Filename:ssh.py
#自动登录服务器,实现服务器巡检工作
import os
import sys
import paramiko

#设置一下字符编码
reload(sys)
sys.setdefaultencoding('utf-8')

#使用public key的登录服务器,将巡检结果输出到特定的目录中
def login_by_pubkey(serverHost,serverPort,userName,keyFile):
		known_host = "~/.ssh/known_hosts"
	ssh = paramiko.SSHClient();
	ssh.load_system_host_keys(known_host)
	#设置默认接收主机信任的策略,但是可能报告“不信任主机的”异常
	ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

	print 'Connectting host %s......' % serverHost
	ssh.connect(serverHost,serverPort,username = userName,key_filename = keyFile)
	print 'Connect host %s sucess' % serverHost

	fname = '~/xunjian/result_%s' % serverHost
	f = file(fname,'w')
	#执行系统命令,获取输出
	stdin, stdout, stderr = ssh.exec_command('df -h')
	#print stdout.readlines()
	f.write('step1:check disk:\n')
	for line in stdout.readlines():
		if len(line) > 0:
			print line
			f.write(line)

	vmstat_stdin,vmstat_stdout,vmstat_stderr = ssh.exec_command('vmstat 2 10')
	f.write('step2:check system:\n')
	for line in vmstat_stdout.readlines():
		if len(line) > 0:
			f.write(line)

	process_stdin,process_stdout,process_stderr = ssh.exec_command('ps -aux | grep java | top 10')
	f.write('step3:check process:\n')
	for line in process_stdout.readlines():
		if len(line) > 0:
			f.write(line)

	#关闭文件和ssh连接
	f.close()
	ssh.close()
	print 'say bye to host %s' % serverHost

	#生成截图文件(采用Java实现,需要调用本地的Java文件,依赖了commons-io.jar)
	print 'generate image file of %s' % serverHost
	try:
		java_cmd = '/usr/bin/env java -cp commons-io-2.1.jar:img.jar com.*.*.*.CeateCheckPic %s' % fname
		os.system(java_cmd)
	except Exception, e:
		print 'error when generate image file of %s : %s' % (serverHost,e)
	finally:
		print '===generate image file of %s over===' % serverHost

def login_by_prikey():
	pass

if __name__ == '__main__':
	#如果有多个服务器,这个列表中需要配置多条这种配置,实际使用中请将 ip,port,username,public key path替换下面的变量
	ips = ['#ip#,#port#,#user#,#pubkey_path#']

	for ip in ips:
		host,port,user,path = ip.split(',')

		print '==========start %s============' % host
		login_by_pubkey(host,int(port),user,path)
		print '>>>>>>>>>>end %s<<<<<<<<<<<<<<' % host


附件是生成巡检图片的一个简单的jar,大家可以参考一下。
  • img.jar (2.1 KB)
  • 下载次数: 114
分享到:
评论

相关推荐

    python服务器资源、服务巡检脚本 输出到execl标红

    标题中的“python服务器资源、服务巡检脚本 输出到execl标红”表明这是一个使用Python编写的自动化脚本,它的主要功能是对服务器的资源使用情况和服务状态进行定期检查,并将检查结果导出到Excel文件中,其中存在...

    python批量巡检操作系统

    9. **README.md**:这是一个Markdown格式的文件,通常包含项目介绍、使用方法、注意事项等内容,对理解和使用这个巡检工具非常有帮助。 总结来说,这个Python批量巡检操作系统方案结合了Python的自动化能力、Shell...

    用Python脚本实现对Linux服务器的监控

    目前Linux下有一些使用Python语言编写的Linux系统监控工具比如inotify-sync(文件系统安全监控软件)、glances(资源监控工具)在实际工作中,Linux系统管理员可以根据自己使用的服务器的具体情况编写一下简单实用的...

    python交换机自动备份脚本

    Python交换机自动备份脚本是一种高效管理网络设备的方法,它能帮助网络管理员便捷地备份多个交换机的配置,包括华为、思科、华三和Aruba等...对于熟悉Python编程和网络设备操作的人员来说,这是一个非常实用的工具。

    常用小功能(linux 巡检)

    Ansible作为一款强大的自动化工具,尤其适用于Linux系统的管理和维护。在这个“常用小功能(linux 巡检)”主题中,我们将深入探讨如何利用Ansible进行高效、便捷的Linux巡检工作。 首先,我们需要了解Ansible的基本...

    Python-使用Python写的IDC资产管理系统让运维更简单

    Python-使用Python编写的IDC(Internet Data Center)资产管理系统是一种高效、便捷的运维工具,它可以帮助运维人员更好地管理和监控数据中心中的硬件、软件资源。IDC资产管理系统的开发使用Python语言,充分利用了...

    python利用paramiko实现交换机巡检的示例

    Python作为一种强大的编程语言,其简洁易读的语法和丰富的第三方库使其成为自动化巡检任务的首选工具。本文将介绍如何利用Python脚本结合paramiko库来实现交换机的自动化巡检。 首先,paramiko是一个Python实现的...

    使用自动化运维工具Ansible集中化管理服务器

    它用Python写成,类似于saltstack和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端。它使用SSH来和节点进行通信。Ansible基于 Python paramiko 开发,分布式,无需客户端,轻量级,配置语法使用 ...

    python脚本监控Tomcat服务器的方法

    Python脚本监控Tomcat服务器是一种常见的自动化运维策略,它能够实时检查Tomcat服务的状态,并在服务出现问题时自动发送警报,比如通过邮件通知。这里我们详细介绍如何实现这一功能。 首先,监控Tomcat服务器的核心...

    Python在自动化运维业务中的设计与实现.pdf

    在IT行业中,自动化运维已经成为了一项重要的技术方向,它利用工具或软件自动执行重复性、周期性和规律性的运维工作,例如对应用系统的软硬件进行自动化巡检、业务故障处理、数据备份及恢复等。Python语言凭借其开源...

    电力巡检系统_原型+需求分析

    电力巡检系统是一种重要的信息化工具,它主要用于提升电力设施的安全监测和维护效率。在这个"电力巡检系统_原型+需求分析"的压缩包文件中,包含了一整套系统的原型设计和详细的需求分析文档,这对于理解和开发这样的...

    番茄小说txt免费下载python永久更新

    标题中的“番茄小说txt免费下载python永久更新”表明这是一个关于使用Python编程语言自动化下载番茄小说平台上的txt格式小说的项目。这个项目可能是为了方便用户无限制地获取小说资源,特别是对于那些希望离线阅读...

    Zabbix数据API导出Python脚本(export zabbix metric data by http api)

    然后,我们需要获取Zabbix服务器的身份验证凭据,通常是一个会话ID(Session ID)。这需要向Zabbix API发送一个登录请求,包含用户名和密码: ```python import requests url = '...

    基于Linux操作系统的批量管理工具 (1).pdf

    该工具主要采用Python和Paramiko接口模块进行开发,针对部署了Linux操作系统的服务器进行脚本和命令的批量执行,包括服务器信息管理、上传下载管理、脚本信息管理以及帮助文档四大功能模块。 Linux操作系统是当今最...

    Python库 | mavsdk-0.13.3-py3-none-linux_armv6l.whl

    "mavsdk"是一个专门针对无人驾驶航空器(UAV)系统的Python库,它为开发人员提供了与 MAVLink 协议兼容的接口,使得控制、监测无人机和其他 MAVLink 兼容设备变得更加简单。版本号0.13.3表明这是该库的一个稳定版本...

    FC存储自动化链路快速巡检脚本

    在服务器上安装Python2.7,如果使用3.0版本Python,请自行修改对应参数,可以通过该脚本,快速巡检存储链路光功率是否有异常,以及针对异常数据进行过滤并形成日志文件

    mysql巡检脚本(必看篇)

    Python是一种强大的脚本语言,尤其适用于自动化任务,它的标准库提供了丰富的功能,使得编写这样的巡检脚本变得简单高效。 1. **CPU信息获取**:通过`psutil.cpu_times_percent(interval=3)`,可以获取到CPU在最近3...

    基于 Python 3.5 + Django 2.0 开发的运维管理系统.zip

    最后,运维工程师还涉及自动化运维体系的建设和完善,通过脚本编写、配置管理工具的运用,实现批量部署、自动巡检、故障自愈等功能,从而提升运维效率,减轻人工压力。 总之,运维工作的核心目标在于保障业务的连续...

    autoSlowSQLKiller:用于自动巡检,及时发现慢查询并杀死对应的查询进程

    1. **自动巡检**:该工具能够定期检查数据库的运行状态,通过分析SQL执行时间,自动识别出执行缓慢的查询。 2. **实时监控**:实时监控数据库的运行情况,对慢查询进行跟踪,确保系统始终处于高效运行状态。 3. **...

Global site tag (gtag.js) - Google Analytics