#!/usr/bin/env python
#-*- encoding: utf-8 -*-
import commands
import os.path
import datetime
import locale
import time
import signal
def handler(signum, frame):
global EndFlag
EndFlag = 0
def ProcessStats():
global LoadAvg
global CpuFreq
global SocTemp
global PMICTemp
global CPULoad
global SystemLoad
global UserLoad
global NiceLoad
global IOWaitLoad
global IrqCombinedLoad
LoadAvg = commands.getoutput("cut -f1 -d ' '
</proc/loadavg")
CpuFreq = commands.getoutput("awk '{printf
(\"%0.0f\",$1/1000); }'
</sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq")
Sensors="/etc/armbianmonitor/datasources/"
SocTemp = 0
path=Sensors + "soctemp"
if os.path.isfile(path):
SocTemp = commands.getoutput("cat " +
path)
PMICTemp = 0
path=Sensors + "pmictemp"
if os.path.isfile(path):
PMICTemp = commands.getoutput("awk
'{printf (\"%0.1f\",$1/1000); }' <" + path)
CpuStat= commands.getoutput ("awk -F\" \"
'{print$1\"\t\"$2\"\t\"$3\"\t\"$4\"\t\"$5\"\t\"$6}'
</tmp/cpustat")
list = CpuStat.split()
CPULoad=list[0]
SystemLoad=list[1]
UserLoad=list[2]
NiceLoad=list[3]
IOWaitLoad=list[4]
IrqCombinedLoad=list[5]
def header():
Sensors="/etc/armbianmonitor/datasources/"
print "Stop monitoring using [ctrl]-[c]"
print
"Time
CPU load %cpu %sys %usr %nice %io %irq",
path=Sensors + "soctemp"
if os.path.isfile(path):
print " CPU",
path=Sensors + "pmictemp"
if os.path.isfile(path):
print " PMIC",
print
def display():
ProcessStats()
d = datetime.datetime.today()
print '{0:02d}:{1:02d}:{2:02d}:'.format(d.hour,
d.minute, d.second),
print '{0:>4s}MHz'.format(CpuFreq),
print '{0:>5s}'.format(LoadAvg),
print '{0:>3s}%'.format(CPULoad),
print '{0:>3s}%'.format(SystemLoad),
print '{0:>3s}%'.format(UserLoad),
print '{0:>3s}%'.format(NiceLoad),
print '{0:>3s}%'.format(IOWaitLoad),
print '{0:>3s}%'.format(IrqCombinedLoad),
if SocTemp > 0:
print '{0:>4s}°C'.format(SocTemp),
if PMICTemp > 0:
print '{0:>4s}°C'.format(MPICTemp),
print
def main():
global EndFlag
EndFlag = 1
signal.signal(signal.SIGINT, handler)
header()
while(EndFlag):
display()
time.sleep(5)
if __name__ == "__main__":
main()
|