いくつかの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

返信を残します