linux分区dh满了,python 在linux下能过top,和dh命令获得cpu,内存,以及硬盘信息 - Sprite...
主要是通過os.popen讀取命令輸出實現的,os.popen 啟動新的進程,且將外部命令的輸出作為文件類型對象返回。不能獲得外部命令的返回值。既然是文件對象就可以直接用for in 來讀取,代碼如下:
#!/usr/bin/python
#fileName:getinfoinsh.py
#get cpu,meminfo from top command.
import os
import time
def getinfointop():
topp=os.popen("top -n1|grep -E '^Cpu|^Mem'")
toppstr=topp.read()
replacestr=["\x1b","[m","\x0f","[K"]
# replace the str cannt be printed.
for item in replacestr:toppstr=toppstr.replace(item,'')
splitstr=toppstr.split("\n")
cpuinfo=splitstr[0].split()
meminfo=splitstr[1].split()
info=(cpuinfo[1].strip(','),cpuinfo[2].strip(','),cpuinfo[4].strip(','),meminfo[3],meminfo[5],meminfo[1])
return info
def getinfoindh():
dhplines=[]
for i in os.popen("df -h"):
dhplines.append(i.strip())
return dhplines
if __name__=='__main__':
info=getinfointop()
diskinfo=getinfoindh()
print 'cpu info:'
print "user cpu used:",info[0]
print "system cpu used:",info[1]
print "free cpu:",info[2]
print ''
print 'Mem info:'
print "used mem:",info[3]
print "free mem:",info[4]
print "total mem:",info[5]
print ''
print 'disk info:'
for i in diskinfo:print i
print ''
print 'time:', time.strftime('%Y-%m-%d %H:%M',time.localtime(time.time()))
本來想加注釋的,結果發現2.7版本的不支持中文注釋,replacestr=["\x1b","[m","\x0f","[K"]這里可能不好理解,不知道為什么top命令會輸
出一些沒辦法打印的字符,這個就是用來替換這些字符的。。我沒找到更好的方法。
這應該是我寫的第一個腳本吧。。。linux,python..i m coming....
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的linux分区dh满了,python 在linux下能过top,和dh命令获得cpu,内存,以及硬盘信息 - Sprite...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux系统改ip地址 永久生效,Li
- 下一篇: linux选择最短路径sdn,基于网络流