使用 python 获取 Linux 系统信息(通过dmidecode命令)

通过 dmidecode 命令可以获取到 Linux 系统的包括 BIOS、 CPU、内存等系统的硬件信息,这里使用 python 代码来通过调用 dmidecode 命令来获取 Linux 必要的系统信息,更多的信息都可以通过这种方式去获取。

方式1:

 1 #!/usr/bin/python
 2 #encoding: utf-8
 3
 4 from subprocess import Popen, PIPE
 5
 6 p = Popen([‘dmidecode‘], stdout = PIPE)
 7 data = p.stdout
 8 lines = []
 9 dicts = {}
10
11 while True:
12     line = data.readline()
13     if line.startswith(‘System Information‘):
14         while True:
15             line = data.readline()
16             if line == ‘\n‘:
17                 break
18             else:
19                 lines.append(line)
20         break
21
22 d = dict([i.strip().split(‘:‘) for i in lines])
23
24 #for k,v in dicts.items():
25 #    dicts[k] = v.strip()
26 dicts[‘Manufacturer‘] = d[‘Manufacturer‘].strip()
27 dicts[‘Product Name‘] = d[‘Product Name‘].strip()
28 dicts[‘Serial Number‘] = d[‘Serial Number‘].strip()
29 print dicts

方式2:

 1 #!/usr/bin/python
 2 #encoding: utf-8
 3
 4 from subprocess import Popen, PIPE
 5
 6 def getDmi():
 7     p = Popen([‘dmidecode‘], stdout = PIPE)
 8     data = p.stdout.read()
 9     return data
10
11 def parseDmi(data):
12     lines = []
13     line_in = False
14     dmi_list = [i for i in data.split(‘\n‘) if i]
15     for line in dmi_list:
16         if line.startswith(‘System Information‘):
17             line_in = True
18             continue
19         if line_in:
20             if not line[0].strip():
21                 lines.append(line)
22             else:
23                 break
24     return lines
25
26 def dimDic():
27     dmi_dic = {}
28     data = getDmi()
29     lines = parseDmi(data)
30     dic = dict([i.strip().split(‘: ‘) for i in lines])
31     dmi_dic[‘vendor‘] = dic[‘Manufacturer‘]
32     dmi_dic[‘product‘] = dic[‘Product Name‘]
33     dmi_dic[‘sn‘] = dic[‘Serial Number‘]
34
35     return dmi_dic
36
37
38 if __name__ == ‘__main__‘:
39     print dimDic()
时间: 2024-10-29 19:10:27

使用 python 获取 Linux 系统信息(通过dmidecode命令)的相关文章

使用 Python 获取 Linux 系统信息

探索platform模块 platform模块在标准库中,它有很多运行我们获得众多系统信息的函数.让我们运行Python解释器来探索它们中的一些函数,那就从platform.uname()函数开始吧: >>> import platform>>> platform.uname()('Linux', 'fedora.echorand', '3.7.4-204.fc18.x86_64', '#1 SMP Wed Jan 23 16:44:29 UTC 2013', 'x86

Inxi:一个功能强大的获取Linux系统信息的命令行工具

Inxi 最初是为控制台和  IRC(网络中继聊天)开发的一个强大且优秀的命令行系统信息脚本.可以使用它获取用户的硬件和系统信息,它也用于调试或者社区技术支持工具. 使用 Inxi 可以很容易的获取所有的硬件信息:硬盘.声卡.显卡.网卡.CPU 和 RAM 等.同时也能够获取大量的操作系统信息,比如硬件驱动.Xorg  .桌面环境.内核.GCC 版本,进程,开机时间和内存等信息. 运行在命令行和 IRC 上的 Inxi 输出略有不同,IRC 上会有一些可供用户使用的默认过滤器和颜色选项.支持的

Python获取Linux或Windows系统的基本信息

前段时间写了一篇博文名为<利用Python脚本获取Windows和Linux的系统版本信息>,本篇博文利用这篇文章中的知识提供一个增强版本的获取信息的Python脚本.执行后,看起来就像登录Ubuntu Linux系统时提示的motd信息一样,可以看到: 系统的类型.发行版本(具体信息).内核版本等 当前系统的时间.时区 系统每一个CPU核心的负载和CPU整体负载 进程数量 根分区的磁盘空间,Windows下默认C盘 登录的用户总数和每一个登录到系统的用户的信息 内存和交换分区的利用率 默认网

使用 python 获取 Linux 的 IP 信息(通过 ifconfig 命令)

我们可以使用 python 代码通过调用 ifconfig 命令来获取 Linux 主机的 IP 相关信息,包括:网卡名称.MAC地址.IP地址等. 第一种实现方式: 1 #!/usr/bin/python 2 #encoding: utf-8 3 4 from subprocess import Popen, PIPE 5 6 def getIfconfig(): 7 p = Popen(['ifconfig'], stdout = PIPE) 8 data = p.stdout.read()

用Python获取Linux资源信息的三种方法

方法一:psutil模块 #!usr/bin/env python # -*- coding: utf-8 -*- import socket import psutil class NodeResource(object): def get_host_info(self): host_name = socket.gethostname() return {'host_name':host_name} def get_cpu_state(self): cpu_count = psutil.cpu

python获取Linux信息

刚开始学习Python,用Python写了一个获取Linux服务器信息的脚本,在debian和centos上测试通过.首先需要安装一个psutil库,在安装psutil之前需要安装python的开发工具包 #debian  apt-get install python-dev #centos  yum install python-devel psutil下载页面 https://pypi.python.org/pypi?:action=display&name=psutil#downloads

Python脚本获取Linux系统信息

# -*- coding:utf-8 -*- import os import subprocess import re import hashlib #对字典取子集 def sub_dict(form_dict, sub_keys, default=None):     return dict([(k, form_dict.get(k.strip(), default)) for k in sub_keys.split(',')]) #读取cpuinfo信息 # dmidecode -t 4 

python 获取linux系统性能信息

本文以及以后有关python 运维的文章都是<Python自动化运维:技术与最佳实践> 的读书笔记. psutil 是python的第三方库,通过它可以轻松获取系统运行的各种信息:cpu.内存.磁盘.网络等 一 安装 安装环境是centos 6.4 64位系统 yum install -y gcc python-devel wget https://pypi.python.org/packages/source/p/psutil/psutil-2.0.0.tar.gz --no-check-c

Python实现linux/windows通用批量‘命令/上传/下载’小工具

这阵子一直在学python,碰巧最近想把线上服务器环境做一些规范化/统一化,于是便萌生了用python写一个小工具的冲动.就功能方面来说,基本上是在"重复造轮子"吧,但是当我用这小工具完成了30多台服务器从系统层面到应用层面的一些规范化工作之后,觉得效果还不算那么low(高手可忽略这句话~~),这才敢拿出来跟小伙伴们分享一下. (注:笔者所用为python版本为3.5,其他版本未经测试~~) 其实很简单,就"一个脚本"+"server信息文件"实