python 获取服务器基本信息

简介: python 获取服务器CPU、内存等基本信息; /proc/meminfo , psutil

方法1:通过系统文件或者系统命令来获取;

import os
import commands
import string
import socket
import json
def base_info():
    """
    :return HOSTNAME, IPADDR, CPU, CPUIDLE, MEM, AVAI_MEM, VERSION(6/7), MACHINE(64/32)
    """
    ifname='eth0'
    osinfo = os.uname()
    HOSTNAME = osinfo[1]
    VERSION  = osinfo[2].split('.')[-2]
    MACHINE  = osinfo[-1]
    mem_cmd = "awk '/MemTotal/{printf(\"%0.2f\",$2/1000/1000)}' /proc/meminfo"
    MEM = int(round(float(commands.getoutput(mem_cmd))))

    cpu_cmd = "awk '/processor/{cpu+=1}END{print cpu}' /proc/cpuinfo"
    CPU = commands.getoutput(cpu_cmd)
    if VERSION == 'el7':
        avai_mem_cmd = "awk '/MemAvailable/ {printf(\"%0.2f\",$2/1000/1000)}' /proc/meminfo"
        AVAI_MEM =  commands.getoutput(avai_mem_cmd)
        cpuidle_cmd = "top -bcn 1 | head |awk '/Cpu/ {print $8}'"
        CPUIDLE = commands.getoutput(cpuidle_cmd)
    if VERSION == 'el6':
        ##centos6 可用内存计算方法:MemFree+Buffers+Cached
        avai_mem_cmd = "sed -n '2,4p' /proc/meminfo |awk '{sum+=$2}END{printf(\"%.2f\",sum/1000/1000)}'"
        AVAI_MEM =  commands.getoutput(avai_mem_cmd)
        cpuidle_cmd = "top -bcn 1 | sed -n 's/ //g;3p' | awk -F\"%|,\" '{print $7}'"
        CPUIDLE = commands.getoutput(cpuidle_cmd)
    unix_socker = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    IPADDR = socket.inet_ntoa(fcntl.ioctl(
        unix_socker.fileno(),
        0x8915,  # SIOCGIFADDR
        struct.pack('256s', ifname[:15])
    )[20:24])

    return HOSTNAME, IPADDR, CPU, CPUIDLE, MEM, AVAI_MEM, VERSION, MACHINE

方法2:通过 psutil 模块来获取


import os
import commands
import string
import socket
import json
import psutil
def base_info():
    """
    :return HOSTNAME, IPADDR, CPU, CPUIDLE, MEM, AVAI_MEM, VERSION(6/7), MACHINE(64/32)
    """
    ifname='eth0'
    osinfo = psutil.os.uname()
    HOSTNAME = osinfo[1]
    VERSION = osinfo[2].split('.')[-2]
    MACHINE = osinfo[-1]
    CPUIDLE = 100-psutil.cpu_percent(interval=1)
    CPU = psutil.cpu_count()
    mem_info = psutil.virtual_memory()
    MEM = mem_info.total/1024/1024/1000
    AVAI_MEM = mem_info.available/1024/1024/1000
    net_info = psutil.net_if_addrs()
    IPADDR = net_info['eth0'][0].address
 
    return HOSTNAME, IPADDR, CPU, CPUIDLE, MEM, AVAI_MEM, VERSION, MACHINE



目录
相关文章
|
8月前
|
人工智能 JavaScript API
零基础构建MCP服务器:TypeScript/Python双语言实战指南
作为一名深耕技术领域多年的博主摘星,我深刻感受到了MCP(Model Context Protocol)协议在AI生态系统中的革命性意义。MCP作为Anthropic推出的开放标准,正在重新定义AI应用与外部系统的交互方式,它不仅解决了传统API集成的复杂性问题,更为开发者提供了一个统一、安全、高效的连接框架。在过去几个月的实践中,我发现许多开发者对MCP的概念理解透彻,但在实际动手构建MCP服务器时却遇到了各种技术壁垒。从环境配置的细节问题到SDK API的深度理解,从第一个Hello World程序的调试到生产环境的部署优化,每一个环节都可能成为初学者的绊脚石。因此,我决定撰写这篇全面的实
1913 67
零基础构建MCP服务器:TypeScript/Python双语言实战指南
|
7月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1311 1
|
9月前
|
API Python
VIN码查询API的实战指南:获取二手车信息以Python为例
随着机动车保有量上升,中国二手车市场迎来发展机遇。本文介绍如何通过VIN码查询API获取车辆详细信息,提升交易透明度与安全性。
309 1
|
8月前
|
安全 Linux 网络安全
Python极速搭建局域网文件共享服务器:一行命令实现HTTPS安全传输
本文介绍如何利用Python的http.server模块,通过一行命令快速搭建支持HTTPS的安全文件下载服务器,无需第三方工具,3分钟部署,保障局域网文件共享的隐私与安全。
2055 0
|
8月前
|
前端开发 数据安全/隐私保护 Python
虚拟物流单号生成器, 虚拟快递单号假物流信息, 虚拟快递单号在线生成【python框架】
这个虚拟物流单号生成系统包含以下功能:支持多种主流快递公司的单号生成
|
8月前
|
数据安全/隐私保护 数据格式 Python
快递单号模拟生成器, 虚拟物流信息在线生成,虚假快递单号生成器【python】
支持多种主流快递公司生成符合各快递公司规则的快递单号自动生成收发件人信息
|
8月前
|
JSON 前端开发 API
快递单号生成器在线, 快递单号模拟生成器, 虚拟物流信息在线生成【python】
项目包含三个主要模块:快递单号生成器核心逻辑、Flask Web应用程序和前端HTML页面
|
8月前
|
JSON API 数据安全/隐私保护
车辆五项信息查询 API 的实践指南:通过Python调用赋能车辆信息标准化
本API通过车牌号快速获取车辆五项核心信息,包括品牌、登记日期、车架号等,助力二手车评估、维修、保险等场景实现数字化转型。数据源自权威公安交管库,日更同步,毫秒级响应,满足高并发需求,符合隐私保护规范,是推动汽车后市场智能化的重要工具。
508 0
|
9月前
|
数据采集 存储 数据可视化
Python爬取招标信息并生成可视化分析报告
Python爬取招标信息并生成可视化分析报告

推荐镜像

更多