python 监控linux cpu,python脚本监控获取当前Linux操作系统[内存]/[cpu]/[硬盘]/[登录用户]...

此脚本应用在linux, 前提是需要有python和python的psutil模块

脚本

#!/usr/bin/env python

# coding=utf-8

import sys

import psutil

import time

import os

time_str = time.strftime( "%Y-%m-%d", time.localtime( ) )

file_name = "./" + time_str + ".log"

if os.path.exists ( file_name ) == False :

os.mknod( file_name )

handle = open ( file_name , "w" )

else :

handle = open ( file_name , "a" )

if len( sys.argv ) == 1 :

print_type = 1

else :

print_type = 2

def isset ( list_arr , name ) :

if name in list_arr :

return True

else :

return False

print_str = "";

if ( print_type == 1 ) or isset( sys.argv,"mem" ) :

memory_convent = 1024 * 1024

mem = psutil.virtual_memory()

print_str += " 内存状态如下:

"

print_str = print_str + " 系统的内存容量为: "+str( mem.total/( memory_convent ) ) + " MB

"

print_str = print_str + " 系统的内存以使用容量为: "+str( mem.used/( memory_convent ) ) + " MB

"

print_str = print_str + " 系统可用的内存容量为: "+str( mem.total/( memory_convent ) - mem.used/( 1024*1024 )) + "MB

"

print_str = print_str + " 内存的buffer容量为: "+str( mem.buffers/( memory_convent ) ) + " MB

"

print_str = print_str + " 内存的cache容量为:" +str( mem.cached/( memory_convent ) ) + " MB

"

if ( print_type == 1 ) or isset( sys.argv,"cpu" ) :

print_str += " CPU状态如下:

"

cpu_status = psutil.cpu_times()

print_str = print_str + " user = " + str( cpu_status.user ) + "

"

print_str = print_str + " nice = " + str( cpu_status.nice ) + "

"

print_str = print_str + " system = " + str( cpu_status.system ) + "

"

print_str = print_str + " idle = " + str ( cpu_status.idle ) + "

"

print_str = print_str + " iowait = " + str ( cpu_status.iowait ) + "

"

print_str = print_str + " irq = " + str( cpu_status.irq ) + "

"

print_str = print_str + " softirq = " + str ( cpu_status.softirq ) + "

"

print_str = print_str + " steal = " + str ( cpu_status.steal ) + "

"

print_str = print_str + " guest = " + str ( cpu_status.guest ) + "

"

if ( print_type == 1 ) or isset ( sys.argv,"disk" ) :

print_str += " 硬盘信息如下:

"

disk_status = psutil.disk_partitions()

for item in disk_status :

print_str = print_str + " "+ str( item ) + "

"

if ( print_type == 1 ) or isset ( sys.argv,"user" ) :

print_str += " 登录用户信息如下:

"

user_status = psutil.users()

for item in user_status :

print_str = print_str + " "+ str( item ) + "

"

print_str += "---------------------------------------------------------------

"

print ( print_str )

handle.write( print_str )

handle.close()

此时如果直接启动的话会报错(因为没有psutil模块)

66a0b613214a108796da9c720423a6b1.png

下面安装psutil模块

下载

wget https://pypi.python.org/packages/source/p/psutil/psutil-2.1.3.tar.gz

解压

tar -zxvf psutil-2.1.3.tar.gz

安装

cd psutil-2.1.3/

python setup.py install

安装过程中报错

9e6e0e0d8e21f193ddac07592606f55f.png

原因:缺少python-dev的依赖环境, 安装它

yum -y install python-devel.x86_64

再次安装psutil

python setup.py install

安装成功

546b9df8ca68ab6ff7f0283e32d0e0ba.png

5fe57186aa7cc587e36b0a649f90fa39.png

测试psutil模块是否安装成功

[root@localhost psutil-2.1.3]# python

>>> import psutil

>>> psutil.pids()

1aa0ab0a98368a316b09dab7d0749137.png

安装成功

运行脚本

./system.py

显示

[root@localhost test]# ./system.py

内存状态如下:

系统的内存容量为: 1863 MB

系统的内存以使用容量为: 445 MB

系统可用的内存容量为: 1418MB

内存的buffer容量为: 32 MB

内存的cache容量为:247 MB

CPU状态如下:

user = 5.9

nice = 0.0

system = 8.34

idle = 1125.86

iowait = 2.2

irq = 0.02

softirq = 0.48

steal = 0.0

guest = 0.0

硬盘信息如下:

sdiskpart(device='/dev/mapper/VolGroup-lv_root', mountpoint='/', fstype='ext4', opts='rw')

sdiskpart(device='/dev/sda1', mountpoint='/boot', fstype='ext4', opts='rw')

sdiskpart(device='/dev/sr0', mountpoint='/mnt/redhat', fstype='iso9660', opts='ro')

登录用户信息如下:

suser(name='root', terminal='pts/0', host='192.168.145.1', started=1510234880.0)

---------------------------------------------------------------

4cf608b5f9f54ec97eb1f6eb46b6f67f.png

成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值