FreezeJ' Blog

获取Linux基础信息脚本

2022-04-29

用于收集机器固定信息,非经常刷新的数据。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2022-4-29 9:38
# @Author  : FreezeJ
# @File    : update_host_expand.py
# @Software: PyCharm
# @Comment : 生成主机扩展信息

import psutil
import math
import platform
import warnings

# 屏蔽提示
warnings.filterwarnings("ignore", category=DeprecationWarning)


def tr_gb(num):  # 转换为GB单位,ceil为向上取整
    if isinstance(num, int) or isinstance(num, float):
        return math.ceil(num / 1024.0 / 1024.0 / 1024.0)
    else:
        return 0


def host_info():
    info_dict = {}

    # CPU
    cpu_num = psutil.cpu_count()
    info_dict["CPU核心数"] = f"{cpu_num}核"

    # 内存
    mem = psutil.virtual_memory()
    info_dict["内存总数"] = f"{tr_gb(mem.total)}GB"

    # 磁盘
    disk_human_info_list = []
    disk_info_list = psutil.disk_partitions()
    for disk_info in disk_info_list:
        mount_point = disk_info.mountpoint
        disk_usage = psutil.disk_usage(mount_point)
        if mount_point == '/':
            mount_point_cn = "系统盘"
        elif mount_point == '/data':
            mount_point_cn = "数据盘"
        else:
            mount_point_cn = "其它盘"
        disk_total = tr_gb(disk_usage.total)
        disk_human_info_list.append(f"{mount_point_cn}: {disk_total}GB")
    info_dict["磁盘信息"] = disk_human_info_list

    # 操作系统
    try:
        info_dict["操作系统"] = ' '.join(platform.linux_distribution())
    except Exception as e:
        print(e)

    return info_dict


print(host_info())