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)境;
請各位給予下建議,有什么改良的地方可以提一下,不甚感激;
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í)沒想到,請大家提一下建議,多謝;
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實(shí)現(xiàn)Web服務(wù)器FastAPI的步驟詳解
FastAPI?是一個(gè)用于構(gòu)建?API?的現(xiàn)代、快速(高性能)的?web?框架,使用?Python?3.6+?并基于標(biāo)準(zhǔn)的?Python類型提示,這篇文章主要介紹了Python實(shí)現(xiàn)Web服務(wù)器FastAPI的過程,需要的朋友可以參考下2022-06-06
Python動(dòng)態(tài)演示旋轉(zhuǎn)矩陣的作用詳解
一個(gè)矩陣我們想讓它通過編程,實(shí)現(xiàn)各種花樣的變化怎么辦呢?下面這篇文章主要給大家介紹了關(guān)于Python動(dòng)態(tài)演示旋轉(zhuǎn)矩陣的作用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12
python Stanza處理NLP任務(wù)使用詳解(多語言處理工具)
這篇文章主要為大家介紹了python Stanza處理NLP任務(wù)使用詳解,多語言處理工具使用實(shí)例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
Ubuntu16安裝Python3.9的實(shí)現(xiàn)步驟
這篇文章主要介紹了Ubuntu16安裝Python3.9的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
python pandas輕松通過特定列的值多條件去篩選數(shù)據(jù)及contains方法的使用
這篇文章主要介紹了python pandas輕松通過特定列的值多條件去篩選數(shù)據(jù)及contains方法的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
pytorch 6 batch_train 批訓(xùn)練操作
這篇文章主要介紹了pytorch 6 batch_train 批訓(xùn)練操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
卷積神經(jīng)網(wǎng)絡(luò)如何實(shí)現(xiàn)提取特征
這篇文章主要介紹了卷積神經(jīng)網(wǎng)絡(luò)如何實(shí)現(xiàn)提取特征問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04

