/usr/share/doc/python-psutil-doc/examples/sensors.py is in python-psutil-doc 5.4.2-1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | #!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""
A clone of 'sensors' utility on Linux printing hardware temperatures,
fans speed and battery info.
$ python scripts/sensors.py
asus
Temperatures:
asus 57.0°C (high=None°C, critical=None°C)
Fans:
cpu_fan 3500 RPM
acpitz
Temperatures:
acpitz 57.0°C (high=108.0°C, critical=108.0°C)
coretemp
Temperatures:
Physical id 0 61.0°C (high=87.0°C, critical=105.0°C)
Core 0 61.0°C (high=87.0°C, critical=105.0°C)
Core 1 59.0°C (high=87.0°C, critical=105.0°C)
Battery:
charge: 84.95%
status: charging
plugged in: yes
"""
from __future__ import print_function
import psutil
def secs2hours(secs):
mm, ss = divmod(secs, 60)
hh, mm = divmod(mm, 60)
return "%d:%02d:%02d" % (hh, mm, ss)
def main():
if hasattr(psutil, "sensors_temperatures"):
temps = psutil.sensors_temperatures()
else:
temps = {}
if hasattr(psutil, "sensors_fans"):
fans = psutil.sensors_fans()
else:
fans = {}
if hasattr(psutil, "sensors_battery"):
battery = psutil.sensors_battery()
else:
battery = None
if not any((temps, fans, battery)):
print("can't read any temperature, fans or battery info")
return
names = set(list(temps.keys()) + list(fans.keys()))
for name in names:
print(name)
# Temperatures.
if name in temps:
print(" Temperatures:")
for entry in temps[name]:
print(" %-20s %s°C (high=%s°C, critical=%s°C)" % (
entry.label or name, entry.current, entry.high,
entry.critical))
# Fans.
if name in fans:
print(" Fans:")
for entry in fans[name]:
print(" %-20s %s RPM" % (
entry.label or name, entry.current))
# Battery.
if battery:
print("Battery:")
print(" charge: %s%%" % round(battery.percent, 2))
if battery.power_plugged:
print(" status: %s" % (
"charging" if battery.percent < 100 else "fully charged"))
print(" plugged in: yes")
else:
print(" left: %s" % secs2hours(battery.secsleft))
print(" status: %s" % "discharging")
print(" plugged in: no")
if __name__ == '__main__':
main()
|