首页 > 编程语言 >系统运行监控程序

系统运行监控程序

时间:2024-01-11 10:14:54浏览次数:29  
标签:Shift 程序 监控 Press import data 运行

# This is a sample Python script.
import psutil
import platform
import math


# Press Shift+F10 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.

def bytesHuman(data):
    if data == 0:
        return 0
    elif data <= 1024:
        return str(data) + "Bytes"
    elif data <= 1048576:
        return str(math.ceil(data / 1024)) + "KB"
    elif data < 1073741824:
        return str(round((data / 1024 / 1024), 2)) + "MB"
    else:
        return str(math.ceil(data / 1024 / 1024 / 1024)) + "GB"


def monitor(name):
    print(name)
    print("CPU信息:")
    print("CPU物理核心数量:", psutil.cpu_count(False))
    print("CPU逻辑核心数量:", psutil.cpu_count())
    print()

    print("内存信息:")
    print("内存总量:", bytesHuman(psutil.virtual_memory().total))
    print("内存使用量:", bytesHuman(psutil.virtual_memory().used))
    if platform.system() == "Linux":
        print("内存缓冲量:", bytesHuman(psutil.virtual_memory().buffers))
        print("内存缓存使用量:", bytesHuman(psutil.virtual_memory().cached))
    print("内存空闲总量:", bytesHuman(psutil.virtual_memory().free))
    print("交换分区总量:", bytesHuman(psutil.swap_memory().total))
    print("交换分区使用量:", bytesHuman(psutil.swap_memory().used))
    print("交换分区空闲量:", bytesHuman(psutil.swap_memory().free))
    print()

    print("磁盘情况:")
    for part in psutil.disk_partitions():
        print("\t盘符:", part.device)
        print("\t挂载点:", part.mountpoint)
        print("\t文件系统类型:", part.fstype)
        print("\t权限:", part.opts)
        print("\t最大目录数量:", part.maxfile)
        print("\t最大目录层级:", part.maxpath)
        print()

    disks = psutil.disk_io_counters(True)
    for disk in disks:
        print("磁盘:", disk)
        print("磁盘读io数:", disks[disk].read_count)
        print("磁盘写io数:", disks[disk].write_count)
        print("磁盘读字节数:", bytesHuman(disks[disk].read_bytes))
        print("磁盘写字节数:", bytesHuman(disks[disk].write_bytes))
        print()

    # 网络协议
    net_id = {}
    for net in psutil.net_connections():
        net_id[net.pid] = net
        
    print("当前系统进程:")
    for proc in psutil.process_iter():
        try:
            port = net_id[proc.pid].laddr.port
            print("进程ID:%d,父进程ID:%d,进程:%s,网络端口:%s" % (proc.pid, proc.ppid(), proc.name(), port))
        except psutil.NoSuchProcess:
            pass
        except KeyError:
            print("进程ID:%d,父进程ID:%d,进程:%s" % (proc.pid, proc.ppid(), proc.name()))


if __name__ == '__main__':
    monitor("this is simple system monitor program\n")

 

标签:Shift,程序,监控,Press,import,data,运行
From: https://www.cnblogs.com/Python-233/p/17956189

相关文章

  • Prometheus 监控告警系统搭建(对接飞书告警)
    Prometheus是一套开源的系统监控报警框架,非常适合大规模集群的监控。它也是第二个加入CNCF的项目,受欢迎度仅次于Kubernetes的项目。本文讲解完整prometheus监控和告警服务的搭建。prometheus监控是当下主流监控系统,它是多个服务组合使用的体系。整体架构预览如下:本篇教程......
  • 微信小程序 宿主环境
        微信为小程序的正常运行提供了通信模型、运行机制、组件、API等的支持小程序的宿主环境就是微信,小程序里面所用的能力都是微信给咱们提供的     ......
  • Vue-Router: 如何在Vue应用程序中使用编程式导航?
    Laravel是一个流行的PHP框架,它具有出色的可测试性,可以帮助开发人员在更短的时间内编写可靠的代码。但是,即使使用了这个框架,也可能会出现测试覆盖率较低的情况。测试覆盖率是指代码中已由测试案例覆盖的部分比例。测试覆盖率越高,代码质量越高。在本文中,我们将分享几种技巧,帮助您提......
  • Golang 监控文件夹内文件的增删改(包括子文件夹)
    你需要自己处理log部分packagemainimport("crypto/md5""fmt""go-admin/log""os""path/filepath""time""github.com/fsnotify/fsnotify")typeFileChangeCallback......
  • 基于微信小程序的毕业设计-图书推荐系统(附源码+论文)
    了解设计+图片上号摘要:随着互联网的普及和信息技术的发展,图书推荐管理系统在图书馆中发挥着越来越重要的作用。本文基于SpringBoot框架,设计并实现了一个图书推荐管理系统。该系统能够根据用户的历史阅读记录和兴趣,为其推荐合适的图书,提高图书馆的借阅率。关键词:微信小程序;图书推荐;......
  • #yyds干货盘点# LeetCode程序员面试金典:有序数组中的单一元素
    题目给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。请你找出并返回只出现一次的那个数。你设计的解决方案必须满足O(logn)时间复杂度和O(1)空间复杂度。 示例1:输入:nums=[1,1,2,3,3,4,4,8,8]输出:2示例2:输入:nums= [......
  • #yyds干货盘点# LeetCode程序员面试金典:UTF-8 编码验证
    题目给定一个表示数据的整数数组data,返回它是否为有效的UTF-8编码。UTF-8中的一个字符可能的长度为1到4字节,遵循以下的规则:对于1字节的字符,字节的第一位设为0,后面7位为这个符号的unicode码。对于n字节的字符(n>1),第一个字节的前n位都设为1,第n+1位......
  • 《PySpark大数据分析实战》-12.Spark on YARN配置Spark运行在YARN上
    ......
  • 监控系统企业架构演进史-拨测监控
    前情概述:在《监控系统企业架构演进史-跨地域混合云》中,监控系统已经逐步成熟且企业化发展。这一章节简单讲述一下期间的拨测能力搭建,以下是这套系统的发展史,在监控平台搭建的过程中,内部监控采集还不足以满足企业业务需求,在计划发展apm之前,异地拨测的黑匣子监控也纳入了该系统的一......
  • 提取 PE文件 / 目标程序 的各种信息
    前段时间项目需要实现对WindowsPE文件版本信息的提取,如文件说明、文件版本、产品名称、版权、原始文件名等信息。获取这些信息在Windows下当然有一系列的API函数供调用,简单方便。我们先看一下PE文件结构,PE文件由DOS首部,PE文件头,块表,块和调试信息组成,有关PE文件的数据结构......