国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python實現巡檢系統(solaris)示例

2019-11-25 18:27:54
字體:
來源:轉載
供稿:網友

使用python + shell 編寫,是一個簡易solaris系統巡檢程序

復制代碼 代碼如下:

#!/usr/bin/python -u
#-*- coding:utf-8 -*-
'''
程序:solaris_status.py
author: gyh9711
功能:
 系統狀態信息獲取

語言: 
 sh + python

注意:
 部分調用命令需要用到root權限

測試情況:
 系統版本:solaris10 系統測試ok 
 測試服務器型號:sun 6900 6800 v445 v440 M3000 M5000
內容:

'''
import time
import sys
import os
import re
# import pprint

def getNow():
 return time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())

def puts(mess,_type="print"):

 if _type == "log":
  sys.stdout.write("[%s] %s/n" % (getNow(),mess))
 else:
  sys.stdout.write("%s/n" % mess)
 #pprint.pprint(mess)

def getCommand(cmd):
 return [t.rstrip() for t in os.popen(cmd).readlines()]

#通過系統狀態信息:

#系統基本情況
puts("="*60)
puts("檢查時間 %s" % getNow())
puts("-"*60)
puts("/n系統基本信息")
for i in getCommand("showrev"):
 puts(i)
puts("="*60)
puts("/n")
puts("主機名稱: %s " % getCommand("hostname")[0])
puts("處理器core數: %s " % getCommand("mpstat |awk 'END{print NR-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)
for i in psAll:
 _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("vmstat 1 2 |tail -1 |awk '{print 100-$22}'")[0])
puts("內存使用情況: %s %% 總大小:%s [M]" % (getCommand('''vmstat 1 2 |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))

for i in getCommand('''awk '{if($3 != "") {print $3}}' /etc/vfstab |egrep -v "mount|to|-" |xargs df -h'''):
 puts(i)
puts("/n%s%s%s/n"%("="*30,"網絡情況","="*30))


puts("網絡接口狀態")
for i in getCommand('''for i in `ifconfig -a |egrep "^{hme|qfe|ge|ce|eri|bge|nge|e1000g}" |cut -d: -f1`; do /sbin/dladm show-dev $i; done'''):
 puts(i)
puts("/n網絡接口IP及數據進出情況")
for i in getCommand("netstat -in"):
 puts(i)

puts("/n網絡接口流量情況")
for i in getCommand('''for i in `ifconfig -a |egrep "^{hme|qfe|ge|ce|eri|bge|nge|e1000g}" |cut -d: -f1`; do netstat -I $i; done'''):
 puts(i)
puts("/n 網絡ARP緩存信息")
for i in getCommand("netstat -anp"):
 puts(i)
puts("/n")
puts("/n 路由表情況")
for i in getCommand("netstat -rn"):
 puts(i)
puts("/n")

puts("/n%s%s%s/n"%("="*30,"系統主要服務及狀態[svcs]","="*30))
for i in getCommand('''svcs'''):
 puts(i)
puts("/n%s%s%s/n"%("="*30,"服務硬件狀態[prtdiag]","="*30))
for i in getCommand('''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('''vmstat 1 2'''))
#puts(getCommand('''swap -s'''))


#=================磁盤IO情況=================
#puts(getCommand('''iostat -xtc'''))  #

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 攀枝花市| 永新县| 承德县| 平顶山市| 常宁市| 福安市| 博湖县| 洛浦县| 安陆市| 陆河县| 岚皋县| 宁武县| 宿松县| 昭平县| 青海省| 湟源县| 柘城县| 永康市| 宣武区| 灌阳县| 安远县| 原平市| 广安市| 鄂伦春自治旗| 蛟河市| 宣城市| 大渡口区| 临城县| 海伦市| 延吉市| 凌源市| 高唐县| 江北区| 昌宁县| 万盛区| 东乡族自治县| 遵化市| 乌兰察布市| 景泰县| 文安县| 嘉定区|