Pythonによる検査システム(solaris)の実装例

WBOY
リリース: 2016-06-16 08:44:39
オリジナル
1653 人が閲覧しました

Python + シェルで書かれた、シンプルな Solaris システム検査プログラムです

コードをコピー コードは次のとおりです:

#!/usr/bin/python -u
#- *- コーディング :utf-8 -*-
'''
プログラム:solaris_status.py
作成者: gyh9711
関数:
システムステータス情報を取得する

言語:
sh + Python

注:
一部の呼び出しコマンドには root 権限が必要です

テスト状況:
システム バージョン: Solaris10 システム テスト OK
テスト サーバー モデル: sun 6900 6800 v445 v440 M3000 M5000
内容:

'''
インポート時間
import sys
import os
import re
# import pprint

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

def put(混乱、_type="print"):

if _type == "log":
sys.stdout.write("[%s] %sn" % (getNow(),mess))
else:
sys.stdout.write ("%sn" % 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("ホスト名")[0])
puts("プロセッサコア番号: %s " % getCommand("mpstat |awk 'END{print NR-1}' ")[0])
puts("システム負荷: %s " % getCommand("稼働時間")[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
put("%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("スワップ使用量: %s" % (getCommand("swap -s")[0]))
puts("n")
puts( "%s%s%sn"%("="*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%sn"%("="*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;ned'''):
puts(i)
puts("nネットワーク インターフェイスの IP とデータの入力と終了状況")
for i in getCommand("netstat -in"):
puts(i)

puts("n network Interface Traffic status")
for i in getCommand( ' ''ifconfig -a |egrep "^{hme|qfe|ge|ce|eri|bge|nge|e1000g}" の場合 |cut -d: -f1`; do netstat -I $i ; ' '):
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%sn"%("="*30,"メイン システム サービスとステータス [svcs]","="*30))
for i in getCommand('' 'svcs'''):
puts(i)
puts("n%s%s%sn"%("="*30,"サービス ハードウェア ステータス[prtdiag]","="*30 ))
for i in getCommand('''prtdiag -v'''):
put(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'''')) #

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!