python监控系统性能脚本

1.定时刷新一次数据显示

2.自定义时间保存系统日志

# -*- coding: UTF-8 -*-
#!/usr/bin/python
 
import psutil
import datetime

#import msvcrt
import os
import time

def catch_sys_info():
    global sys_log , now_time
    #获取系统信息
    now_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    cpu_per = psutil.cpu_percent(interval=0.5) #获取cpu刷新率,刷新时间0.5s
    mermory_info = psutil.virtual_memory() #获取内存使用情况(包括总、可用、使用率...)
    disk_info = psutil.disk_usage("/") #获取根目录磁盘使用情况
    net_info = psutil.net_io_counters() #获取网络状态

    sys_log  = "当前时间:%s \n" % (now_time) 
    sys_log += "|---------------|---------------|---------------|----------------|\n"
    sys_log += "|     CPU       |      内存      |       硬盘     |      网络      |\n"
    sys_log += "|---------------|---------------|---------------|----------------|\n"
    sys_log += "|    使用率:%d   |   使用率:%d    |    使用率:%d  |   收:%dMB     |\n" \
        % (cpu_per , mermory_info.percent , disk_info.percent , net_info.bytes_recv/1024**2)
    sys_log += "|---------------|---------------|---------------|----------------|\n"
    sys_log += "|    核心数:%d   |   总量:%.2f  G |   总量:%.2fG  |   发:%dMB     |\n" \
        % (psutil.cpu_count(logical=False) , mermory_info.total/1024**3 , disk_info.total/1024**3 , net_info.bytes_sent/1024**2)
    sys_log += "|---------------|---------------|---------------|----------------|\n"
    
def save_sys_info():
    log_txt = open("./log_test.txt" , "a")
    log_txt.write(sys_log + "\n\n")
    log_txt.close()

"""
关于"__name__"
1) 在本文件调用(不管在那个函数、那个位置),__name__ = "__main__"
2) 当本文件被import时,文件名.__name__ = "文件名"
"""

def main():
    time.sleep(1)
    try :
        #程序入口
        i = 0
        while True:
            i += 1
            os.system("clear")
            print("监控脚本正在运行,\"ctrl+C\"停止运行脚本!")
            catch_sys_info()
            print(sys_log)
            if i == 2: #2为测试次数,每24小时保存一次日志,每次刷新为5s,刷新43200次为24小时
                save_sys_info()
                print("%s 日志已保存!" % now_time)
                i = 0
            time.sleep(5)
    except KeyboardInterrupt:
        os.system("clear")
        print ("监控脚本已正常退出!")
        

if __name__ == "__main__":
    main()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值