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



目录
相关文章
|
3天前
|
JavaScript API C#
【Azure Developer】Python代码调用Graph API将外部用户添加到组,结果无效,也无错误信息
根据Graph API文档,在单个请求中将多个成员添加到组时,Python代码示例中的`members@odata.bind`被错误写为`members@odata_bind`,导致用户未成功添加。
26 10
|
20天前
|
弹性计算 安全 开发工具
灵码评测-阿里云提供的ECS python3 sdk做安全组管理
批量变更阿里云ECS安全组策略(批量变更)
|
2月前
|
缓存 监控 Linux
Python 实时获取Linux服务器信息
Python 实时获取Linux服务器信息
|
3月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
180 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
2月前
|
存储 数据采集 数据库
用 Python 爬取淘宝商品价格信息时需要注意什么?
使用 Python 爬取淘宝商品价格信息时,需注意法律和道德规范,遵守法律法规和平台规定,避免非法用途。技术上,可选择 Selenium 和 Requests 库,处理反爬措施如 IP 限制、验证码识别和请求频率控制。解析页面数据时,确定数据位置并清洗格式。数据存储可选择 CSV、Excel、JSON 或数据库,定期更新并去重。还需进行错误处理和日志记录,确保爬虫稳定运行。
|
2月前
|
数据采集 Web App开发 iOS开发
如何利用 Python 的爬虫技术获取淘宝天猫商品的价格信息?
本文介绍了使用 Python 爬虫技术获取淘宝天猫商品价格信息的两种方法。方法一使用 Selenium 模拟浏览器操作,通过定位页面元素获取价格;方法二使用 Requests 和正则表达式直接请求页面内容并提取价格。每种方法都有详细步骤和代码示例,但需注意反爬措施和法律法规。
|
2月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
873 2
|
3月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
520 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
3月前
|
Python
Python实现系统基础信息
Python实现系统基础信息
38 0
|
弹性计算 安全 Shell
ECS服务器信息查看
ECS服务器信息查看
737 0
ECS服务器信息查看