DEV Community

Cover image for Getting System Information in Linux using Python script
Anurag Rana
Anurag Rana

Posted on • Originally published at pythoncircle.com

Getting System Information in Linux using Python script

Finding system information in Ubuntu like Number and type of processors, memory usage, uptime, etc are extremely easy.

You can use Linux system commands like free -m, uname -a and uptime to find these details. But there is no fun in doing that.

If you love coding in python, you want to do everything in python. So we will see how to find this information using the python program. And in the process will learn something about Linux system in addition to python.

To find few details we will use python module, platform. We will be running this script using python3 interpreter and this script is tested on Ubuntu 16.04.

General Info:
So platform module is used to Access the underlying platform’s identifying data.
We will be using some of the method available in this module.

To get Architecture, call architecture method. It returns a tuple (bits, linkage).

To get the Linux distribution, call dist() or linux_distribution() method. It also returns a tuple.

import platform

# Architecture
print("Architecture: " + platform.architecture()[0])

# machine
print("Machine: " + platform.machine())

# node
print("Node: " + platform.node())

# system
print("System: " + platform.system())

# distribution
dist = platform.dist()
dist = " ".join(x for x in dist)
print("Distribution: " + dist)

Now to get other information we need to go into /proc/ directory of your system. If you look at files you will get an idea where system stores this type of information.

Processor Info:
Processor information is stored in cpuinfo file. Read the file and count the number and model name of the processor.

# processor
print("Processors: ")
with open("/proc/cpuinfo", "r")  as f:
    info = f.readlines()

cpuinfo = [x.strip().split(":")[1] for x in info if "model name"  in x]
for index, item in enumerate(cpuinfo):
    print("    " + str(index) + ": " + item)

Memory Usage:
Memory details are stored in /proc/meminfo file. The first line is the Total memory in the system and the second line is the free memory available at the moment.

# Memory
print("Memory Info: ")
with open("/proc/meminfo", "r") as f:
    lines = f.readlines()

print("     " + lines[0].strip())
print("     " + lines[1].strip())

Continue Reading.....

More from Author:

Discussion (0)