いくつかのpythonスクリプト
統計CPU情報
#!/usr / bin / env Python
from __future__ import print_function
コレクションからOrderedDictをインポートします
pprintをインポートする
def cpuinfo():
”’ / proc/cpuinfoに情報を返します
次の形式の辞書として:
cpu_info['proc0']={…}
cpu_info[‘proc1′]={…}
”’
cpuinfo = OrderedDict()
procinfo = OrderedDict()
nprocs = 0
開いた状態で(‘/ proc / cpuinfo’) fとして:
fの行の場合:
line.stripでない場合():
# 1つのプロセッサの終わり
cpuinfo[‘proc%s’ % nprocs] = procinfo
nprocs = nprocs + 1
# リセット
procinfo = OrderedDict()
そうしないと:
lenの場合(line.split(‘:’)) == 2:
procinfo[line.split(‘:’)[0].ストリップ()] = line.split(‘:’)[1].ストリップ()
そうしないと:
procinfo[line.split(‘:’)[0].ストリップ()] = ”
cpuinfoを返す
__name __ ==’__ main__’の場合:
cpuinfo = cpuinfo()
cpuinfo.keysのプロセッサ用():
印刷(cpuinfo[プロセッサ][「モデル名」])
運転結果
[root @ AMH python]# python cpu1.py
インテル(R) 芯(TM) i3-4170 CPU @ 3.70GHz
15分でのCPU負荷の統計
OSのインポート
def load_stat():
loadavg = {}
f=オープン(“/proc / loadavg”)
con = f.read().スプリット()
f.close()
loadavg[‘lavg_1’]= con[0]
loadavg[‘lavg_5’]= con[1]
loadavg[‘lavg_15’]= con[2]
loadavg[「nr」]= con[3]
loadavg[‘last_pid’]= con[4]
loadavgを返す
印刷 “loadavg”,load_stat()[‘lavg_15’]
運転結果
[root @ AMH python]# python cpu2.py
loadavg 0.00
統計メモリ使用量
#!/usr / bin / env Python
from __future__ import print_function
コレクションからOrderedDictをインポートします
def meminfo():
”’ / proc/meminfoに情報を返します
辞書として ”’
meminfo = OrderedDict()
開いた状態で(‘/ proc / meminfo’) fとして:
fの行の場合:
meminfo[line.split(‘:’)[0]] = line.split(‘:’)[1].ストリップ()
meminfoを返す
__name __ ==’__ main__’の場合:
#印刷(meminfo())
meminfo = meminfo()
印刷(「トータルメモリ: {0}'。フォーマット(meminfo[「MemTotal」]))
印刷(「メモリを解放します: {0}'。フォーマット(meminfo[「MemFree」]))
運転結果
[root @ AMH python]# python mem.py
総メモリ: 615036 kB
空きメモリ: 49288 kB
統計ネットワークの使用状況
#!/usr / bin / env Python
インポート時間
sysをインポート
lenの場合(sys.argv) > 1:
インターフェース=sys.argv[1]
そうしないと:
インターフェース=‘eth0’
STATS = []
印刷‘インターフェース:’,インターフェース
def rx():
ifstat=オープン(‘/ proc / net / dev’).リードライン()
ifstatのインターフェース用:
インターフェースのインターフェースの場合:
stat = float(interface.split()[1])
統計[0:] = [統計]
def tx():
ifstat=オープン(‘/ proc / net / dev’).リードライン()
ifstatのインターフェース用:
インターフェースのインターフェースの場合:
stat = float(interface.split()[9])
統計[1:] = [統計]
「InOut’
処方箋()
tx()
Trueながら:
time.sleep(1)
rxstat_o=リスト(統計)
処方箋()
tx()
RX=フロート(統計[0])
RX_O = rxstat_o[0]
TX=フロート(統計[1])
TX_O = rxstat_o[1]
RX_RATE=ラウンド((処方箋 – RX_O)/1024/1024,3)
TX_RATE=ラウンド((TX – TX_O)/1024/1024,3)
RX_RATEを印刷します ,’MB‘,TX_RATE ,’MB’
運転結果
[root @ AMH python]# python net.py
インターフェース: eth0
インアウト
0.008 MB 0.002 MB
0.006 MB 0.001 MB
0.007 MB 0.002 MB
0.008 MB 0.002 MB
0.008 MB 0.002 MB
0.008 MB 0.002 MB
0.008 MB 0.002 MB