python实现巡检系统(solaris)示例
使用python+shell编写,是一个简易solaris系统巡检程序
#!/usr/bin/python-u
#-*-coding:utf-8-*-
"""
程序:solaris_status.py
author:gyh9711
功能:
系统状态信息获取
语言:
sh+python
注意:
部分调用命令需要用到root权限
测试情况:
系统版本:solaris10系统测试ok
测试服务器型号:sun69006800v445v440M3000M5000
内容:
"""
importtime
importsys
importos
importre
#importpprint
defgetNow():
returntime.strftime("%Y-%m-%d%H:%M:%S",time.localtime())
defputs(mess,_type="print"):
if_type=="log":
sys.stdout.write("[%s]%s\n"%(getNow(),mess))
else:
sys.stdout.write("%s\n"%mess)
#pprint.pprint(mess)
defgetCommand(cmd):
return[t.rstrip()fortinos.popen(cmd).readlines()]
#通过系统状态信息:
#系统基本情况
puts("="*60)
puts("检查时间%s"%getNow())
puts("-"*60)
puts("\n系统基本信息")
foriingetCommand("showrev"):
puts(i)
puts("="*60)
puts("\n")
puts("主机名称:%s"%getCommand("hostname")[0])
puts("处理器core数:%s"%getCommand("mpstat|awk"END{printNR-1}"")[0])
puts("系统负载情况:%s"%getCommand("uptime")[0])
puts("系统进程数:%s"%getCommand("ps-ef|wc-l")[0])
puts("用户运行进程情况")
psAll=getCommand("""ps-ef |awk"{print$1}"|sort|uniq-c|grep-v"UID"""")
puts("\n%s%s"%("用户".ljust(20),"进程数".ljust(10)))
puts("-"*60)
foriinpsAll:
_user=re.split(r"\s+",i)[1:]
#print_user
puts("%s%s"%(_user[1].ljust(20),_user[0].ljust(10)))
puts("-"*60)
puts("\n")
puts("%s%s%s"%("="*30,"状态信息","="*30))
puts("\n")
puts("处理器使用情况:%s%%"%getCommand("vmstat12|tail-1|awk"{print100-$22}"")[0])
puts("内存使用情况:%s%%总大小:%s[M]"%(getCommand("""vmstat12|tail-1|awk"{printf("%d",$5/1024/MEMALL*100);}"MEMALL=`prtconf|grep-i"^memory"|awk"{print$3}"`""")[0],getCommand("""prtconf|grep-i"^memory"|awk"{print$3}""")[0]))
puts("swap使用情况:%s"%(getCommand("swap-s")[0]))
puts("\n")
puts("%s%s%s\n"%("="*30,"磁盘空间使用情况","="*30))
foriingetCommand("""awk"{if($3!=""){print$3}}"/etc/vfstab|egrep-v"mount|to|-"|xargsdf-h"""):
puts(i)
puts("\n%s%s%s\n"%("="*30,"网络情况","="*30))
puts("网络接口状态")
foriingetCommand("""foriin`ifconfig-a|egrep"^{hme|qfe|ge|ce|eri|bge|nge|e1000g}"|cut-d:-f1`;do/sbin/dladmshow-dev$i;done"""):
puts(i)
puts("\n网络接口IP及数据进出情况")
foriingetCommand("netstat-in"):
puts(i)
puts("\n网络接口流量情况")
foriingetCommand("""foriin`ifconfig-a|egrep"^{hme|qfe|ge|ce|eri|bge|nge|e1000g}"|cut-d:-f1`;donetstat-I$i;done"""):
puts(i)
puts("\n网络ARP缓存信息")
foriingetCommand("netstat-anp"):
puts(i)
puts("\n")
puts("\n路由表情况")
foriingetCommand("netstat-rn"):
puts(i)
puts("\n")
puts("\n%s%s%s\n"%("="*30,"系统主要服务及状态[svcs]","="*30))
foriingetCommand("""svcs"""):
puts(i)
puts("\n%s%s%s\n"%("="*30,"服务硬件状态[prtdiag]","="*30))
foriingetCommand("""prtdiag-v"""):
puts(i)
#puts(getCommand("showrev"))
#硬件状态信息
#puts(getCommand("prtdiag-v"))
#cpu情况
#puts(getCommand("mpstat"))
#puts(getCommand("sar-u"))
#物理内存大小
#puts(getCommand("""/usr/sbin/prtdiag-v|grep"^Memory""""))
#虚拟内存
#puts(getCommand("""vmstat12"""))
#puts(getCommand("""swap-s"""))
#=================磁盘IO情况=================
#puts(getCommand("""iostat-xtc""")) #
相关文章
- pycharm导入Python_python简单项目
- Python 基于 selenium 实现不同商城的商品价格差异分析系统
- 毕业设计!Python实现学生教师刷脸签到系统
- python chmod_使Python脚本可执行chmod755?
- Python实现自动回复_python 微信机器人
- python上的表白代码_用Python实现表白代码
- python lambda表达式举例_Python中lambda表达式[通俗易懂]
- python制作自动交易程序_Python如何实现自动化交易
- Python实现智能互动拍照系统(毕设源码)
- 新手学Python可行吗?需要什么基础?(新手学python可行吗?需要什么基础)
- WPF客户端,Python底层,公开招标信息订阅系统
- Python使用platform库获取系统信息:操作系统信息、硬件信息、python环境信息
- Python学习笔记之一Python关键字及其总结详解编程语言
- 一步一步学会在Linux上运行Python程序(linux运行python程序)
- 如何使用Python安装MySQL(python安装mysql)
- Python脚本实现Linux系统管理及自动化部署(python写linux)
- 管理Linux系统下Python文件管理实践(linuxpy文件)
- Python脚本实现Linux命令快捷控制(python执行linux命令)
- python实现系统状态监测和故障转移实例方法
- python端口扫描系统实现方法