Skip to content

Python module for hardware and system monitoring (Linux)

License

Notifications You must be signed in to change notification settings

Arg0s1080/statux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STATUX

Statux is a Python library for Linux that provides methods to get hardware and system information. Useful for monitoring tasks.

Battery

Method Returns
battery_info() Manufacturer, model and s/n
status() Full, Charging or Discharging
is_present() True if battery is present
voltage() battery voltage (mV)
current() battery current (mA)
energy() battery energy (mWh)
power() battery power (mW)
charge() battery charge (mAh)
capacity() current capacity percent
capacity_level() Full, Normal, Low or Critical
low_level() value set for low battery level
critical_level() value set for critical level
action_level() value set for critical action
critical_power_action() PowerOff, Hibernate or HybridSleep
remaining_time() Remaining battery life
wear_level() Battery health level
technology() Chemistry of battery
supply_type() Battery, Mains, UPS, etc
lid_state() Open or Close
ac_adapter_online() True if AC adapter is online

CPU

Method Returns
next_value() CPU Load percentage. Note: Needs to instantiate Load() class
logical_cpus() Number of logical processors
physical_cpus() Number of physical processor
frequency() Current CPU frequency
max_frequency() CPU max frequency
frequency_percent() Current CPU frequency percent
is_x86_64() True if CPU is AMD64 or Intel64 i.e. 64 bit capable
model_name() CPU model name

DISKS

Method Returns
block_devices() sda, sdb, nvmen1, hda, hdb, etc
partitions() sda1,sda2, sdb1, nvmen1p1, hda1, hdb2, etc
is_rotational() If block device is rotational
is_removable() If block device is removable
model() Model name of the given device (sda, hdb..)
disk_naming() a namedtuple with persistent names of a disk or a partition (id, label, path, uuid partlabel and partuuid)
mounts_info() A dict with mounted partitions as key and a namedtuple with mount point, filesystem and mount options as value
mounted_partitions() mounted partitions and mount points
total_size() Total size of a partition
free_space() Free space of a partition
used_space() Used space of a partition
used_space_percent() Used space percent of a partition
bytes_read() Bytes read in a partition
bytes_write() Bytes written in a partition
bytes_read_write() Bytes read and wirtten in a partition
bytes_read_write_multi() Bytes read and writen in several partitions

NETWORK

Method Returns
get_interfaces() All network interfaces
get_address() MAC address os a interface
get_state() Operational state of a interface
download_bytes() total bytes downloaded in a interface
upload_bytes() total bytes uploaded in a interface
down_up_bytes() total bytes up-downloaded in a interface
download_bytes() average download speed per second
upload_speed() average download speed per second
down_up_speed() average up-download speed per second

RAM

Method Returns
total() Total RAM size
free() Free RAM
free_percent() Free RAM percent
available() Available RAM
available_percent() Available RAM percent
buff_cache() Buffer, cached and slab memory
used() Used RAM
used_percent() Used RAM percent

SYSTEM

Method Returns
boot_time() Time at which the system booted
uptime() Time elapsed since system boot time
init() Init system name
hostame() Hostname
user() User name
display_protocol() Display protocol (x11 or wayland)
kernel_release() Kernel release
kernel version() Kernel version
architecture() Machine type
session_id() Current session id
distro_name() Distro short name
distro_full_name() Full distro description
distro_version() Distro version
distro_url() Distro url
linux_distribution() Distro info (id, version, codename)

TEMP

Method Returns
cores() temperature of each core
cpu() CPU temp
max_val() maximum value of the temp sensors obtained

Note:

These methods are based on the proc and sys filesystems and are tested in Linux 4.15. It is possible that some methods are not available in previous kernel versions

Install:

By pip (It may not be the latest version):

pip install statux

Cloning this repo :

git clone https://github.com/Arg0s1080/statux.git
cd statux
sudo python3 setup.py install