博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 获取服务器基本信息
阅读量:7191 次
发布时间:2019-06-29

本文共 2202 字,大约阅读时间需要 7 分钟。

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

import osimport commandsimport stringimport socketimport jsondef 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 osimport commandsimport stringimport socketimport jsonimport psutildef 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

转载地址:http://gfxkm.baihongyu.com/

你可能感兴趣的文章
在php中使用对称加密DES3,开发银行卡绑定,实名验证……
查看>>
Linux history
查看>>
活动安排
查看>>
Python中怎么进行单元测试
查看>>
Laravel之哈希/常用函数/分页
查看>>
spring 事务传播说明
查看>>
Codeforces 442A
查看>>
Please enable network time synchronisation in system settings
查看>>
Android Actionbar Tab 导航模式
查看>>
python+matplotlib+web.py
查看>>
springboot 使用maven 打包 报 (请使用 -source 7 或更高版本以启用 diamond 运算符) 错误解决办法...
查看>>
洛谷 P2290 [HNOI2004]树的计数(bzoj[1211])
查看>>
Linux系统管理
查看>>
virtualbox 相关操作
查看>>
git 和 github 的基本使用
查看>>
流水灯
查看>>
Dubbo系列(2)_RPC介绍
查看>>
mysql取字段名注意事项!!!!千万不能和关键字同名
查看>>
crontab
查看>>
c#程序中的AssemblyInfo.cs
查看>>