python和bash統(tǒng)計(jì)CPU利用率的方法
本文實(shí)例講述了python和bash統(tǒng)計(jì)CPU利用率的方法。分享給大家供大家參考。具體如下:
開始的時(shí)候?qū)懥艘粋€(gè) bash 的實(shí)現(xiàn);
因?yàn)樽罱苍趯W(xué)習(xí) python ,所以就嘗試著用 python 再實(shí)現(xiàn)一回;
支援 python2 環(huán)境;
請(qǐng)各位給予下建議,有什么改良的地方可以提一下,不甚感激;
Python代碼如下:
#!/usr/bin/python
# -*- coding:utf8 -*-
__author__ = 'chenwx'
def cpu_rate():
import time
def cpu_r():
f = open("/proc/stat","r")
for f_line in f:
break
f.close()
f_line = f_line.split(" ")
f_line_a=[]
for i in f_line:
if i.isdigit():
i=int(i)
f_line_a.append(i)
total = sum(f_line_a)
idle = f_line_a[3]
return total,idle
total_a,idle_a=cpu_r()
time.sleep(2)
total_b,idle_b=cpu_r()
sys_idle = idle_b - idle_a
sys_total = total_b - total_a
sys_us = sys_total - sys_idle
cpu_a = (float(sys_us)/sys_total)*100
return cpu_a
# print cpu_rate()
bash的實(shí)現(xiàn)方式:
#!/bin/bash
# 感覺計(jì)算數(shù)組這里應(yīng)該還有辦法簡化的吧;
# 我一時(shí)沒想到,請(qǐng)大家提一下建議,多謝;
cpu_a=(`grep 'cpu ' /proc/stat`)
total_a=$((${cpu_a[1]}+${cpu_a[2]}+${cpu_a[3]}+${cpu_a[4]}+${cpu_a[5]}+${cpu_a[6]}+${cpu_a[7]}+${cpu_a[8]}+${cpu_a[9]}))
idle_a=${cpu_a[4]}
sleep 5
cpu_b=(`grep 'cpu ' /proc/stat`)
total_b=$((${cpu_b[1]}+${cpu_b[2]}+${cpu_b[3]}+${cpu_b[4]}+${cpu_b[5]}+${cpu_b[6]}+${cpu_b[7]}+${cpu_b[8]}+${cpu_b[9]}))
idle_b=${cpu_b[4]}
sys_idle=$(($idle_b-$idle_a))
sys_total=$(($total_b-$total_a))
sys_us=$(($sys_total-$sys_idle))
echo "scale=2;$sys_us/$sys_total*100" | bc
遍歷數(shù)組的方法:
# 找到了解決數(shù)組計(jì)算的辦法了,不過感覺for循環(huán)計(jì)算的方式還是有些繁瑣;
# 不知道有沒有那種對(duì)數(shù)組內(nèi)所有值一并計(jì)算的方法;
cpu_rate_a () {
cpu_a=(`grep 'cpu ' /proc/stat`)
for i in ${cpu_a[@]:1}
do
total_a=$(($total_a+$i))
done
idle_a=${cpu_a[4]}
sleep 5
cpu_b=(`grep 'cpu ' /proc/stat`)
for i in ${cpu_b[@]:1}
do
total_b=$(($total_b+$i))
done
idle_b=${cpu_b[4]}
sys_idle=$(($idle_b-$idle_a))
sys_total=$(($total_b-$total_a))
sys_us=$(($sys_total-$sys_idle))
local_cpu_rate=$(echo "scale=2;$sys_us/$sys_total*100" | bc)
}
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
- Python3 執(zhí)行Linux Bash命令的方法
- python 捕獲 shell/bash 腳本的輸出結(jié)果實(shí)例
- 使用Python腳本在Linux下實(shí)現(xiàn)部分Bash Shell的教程
- bash: /usr/bin/autocrorder: /usr/bin/python^M: bad interpreter: No such file or directory
- Python遠(yuǎn)程linux執(zhí)行命令實(shí)現(xiàn)
- 如何把python項(xiàng)目部署到linux服務(wù)器
- Linux安裝Python3如何和系統(tǒng)自帶的Python2并存
- Linux刪除系統(tǒng)自帶版本Python過程詳解
- windows、linux下打包Python3程序詳細(xì)方法
- Python和Bash結(jié)合在一起的方法
相關(guān)文章
python打包exe開機(jī)自動(dòng)啟動(dòng)的實(shí)例(windows)
今天小編就為大家分享一篇python打包exe開機(jī)自動(dòng)啟動(dòng)的實(shí)例(windows),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06
Python實(shí)現(xiàn)的一個(gè)找零錢的小程序代碼分享
這篇文章主要介紹了Python實(shí)現(xiàn)的一個(gè)找零錢的小程序代碼分享,本文中可以區(qū)分出應(yīng)該找零多少元、多少角,需要的朋友可以參考下2014-08-08
Python簡單實(shí)現(xiàn)gif動(dòng)圖倒放示例
這篇文章主要為大家介紹了Python簡單實(shí)現(xiàn)gif動(dòng)圖倒放的示例過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
python中Tkinter 窗口之輸入框和文本框的實(shí)現(xiàn)
這篇文章主要介紹了python中Tkinter 窗口之輸入框和文本框的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04

