Python 获取服务器系统基本信息

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:hua
import psutil
import time
import datetime

"""
获取系统基本信息
"""

EXPAND = 1024 * 1024


def mems():
    ''' 获取系统内存使用情况 '''
    mem = psutil.virtual_memory()
    mem_str = " 内存状态如下:\n"
    mem_str += "   系统的内存容量为: " + str(mem.total / EXPAND) + " MB\n"
    mem_str += "   系统的内存已使用容量为: " + str(mem.used / EXPAND) + " MB\n"
    mem_str += "   系统可用的内存容量为: " + str(mem.total / EXPAND - mem.used / (1024 * 1024)) + " MB\n"
    # mem_str += "   内存的buffer容量为: " + str(mem.buffers / EXPAND) + " MB\n"
    # mem_str += "   内存的cache容量为:" + str(mem.cached / EXPAND) + " MB\n"
    return mem_str


def cpus():
    ''' 获取cpu的相关信息 '''
    cpu_str = " CPU状态如下:\n"
    cpu_status = psutil.cpu_times()
    cpu_str += "   user = " + str(cpu_status.user) + "\n"
    # cpu_str += "   nice = " + str(cpu_status.nice) + "\n"
    cpu_str += "   system = " + str(cpu_status.system) + "\n"
    cpu_str += "   idle = " + str(cpu_status.idle) + "\n"
    # cpu_str += "   iowait = " + str(cpu_status.iowait) + "\n"
    # cpu_str += "   irq = " + str(cpu_status.irq) + "\n"
    # cpu_str += "   softirq = " + str(cpu_status.softirq) + "\n"
    # cpu_str += "   steal = " + str(cpu_status.steal) + "\n"
    # cpu_str += "   guest = " + str(cpu_status.guest) + "\n"
    return cpu_str


def disks():
    ''' 查看硬盘基本信息 '''
    ''' psutil.disk_partitions()    获取磁盘的完整信息
        psutil.disk_usage('/')      获得分区的使用情况,这边以根分区为例
        psutil.disk_io_counters()   获取磁盘总的io个数
        perdisk 默认为False
        psutil.disk_io_counters(perdisk=True)   perdisk为True 返回单个分区的io个数
    '''
    disk_str = " 硬盘信息如下:\n"
    disk_status = psutil.disk_partitions()
    for item in disk_status:
        disk_str += str(item) + "\n"
        p = item.device
        disk = psutil.disk_usage(p)
        disk_str += p + "盘容量为: " + str(disk.total / EXPAND) + " MB\n"
        disk_str += p + "盘已使用容量为: " + str(disk.used / EXPAND) + " MB\n"
        disk_str += p + "盘可用的内存容量为: " + str(disk.free / EXPAND) + " MB\n"
    return disk_str


def users():
    ''' 查看当前登录的用户信息 '''
    user_str = " 登录用户信息如下:\n "
    user_status = psutil.users()
    for item in user_status:
        user_str += str(item) + "\n"
    return user_str


def process():
    ''' 查看进程信息 '''
    pids = psutil.pids()
    proces = []
    for pid in pids:
        p = psutil.Process(pid)
        jctime = str(datetime.datetime.fromtimestamp(p.create_time()))[:19]
        p_info = [
            p.name(),  # 进程的名字
            # p.exe(),        # 进程bin文件位置
            # p.cwd(),        # 进程的工作目录的绝对路径
            p.status(),  # 进程的状态
            jctime,  # 进程的创建时间
            # p.uids(),       # 进程的uid信息
            # p.gids(),       # 进程的gid信息
            p.cpu_times(),  # cup时间信息
            p.memory_info(),  # 进程内存的利用率
            p.io_counters()  # 进程的io读写信息
        ]
        proces.append(p_info)
    return proces


if __name__ == '__main__':
    print(mems())  # 内存
    print(cpus())  # CPU
    print(disks())  # 硬盘
    print(users())  # 登录用户
    proces = process()
    print(proces[0])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值