此脚本应用在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 += " 内存状态如下:\n" print_str = print_str + " 系统的内存容量为: "+str( mem.total/( memory_convent ) ) + " MB\n" print_str = print_str + " 系统的内存以使用容量为: "+str( mem.used/( memory_convent ) ) + " MB\n" print_str = print_str + " 系统可用的内存容量为: "+str( mem.total/( memory_convent ) - mem.used/( 1024*1024 )) + "MB\n" print_str = print_str + " 内存的buffer容量为: "+str( mem.buffers/( memory_convent ) ) + " MB\n" print_str = print_str + " 内存的cache容量为:" +str( mem.cached/( memory_convent ) ) + " MB\n" if ( print_type == 1 ) or isset( sys.argv,"cpu" ) : print_str += " CPU状态如下:\n" cpu_status = psutil.cpu_times() print_str = print_str + " user = " + str( cpu_status.user ) + "\n" print_str = print_str + " nice = " + str( cpu_status.nice ) + "\n" print_str = print_str + " system = " + str( cpu_status.system ) + "\n" print_str = print_str + " idle = " + str ( cpu_status.idle ) + "\n" print_str = print_str + " iowait = " + str ( cpu_status.iowait ) + "\n" print_str = print_str + " irq = " + str( cpu_status.irq ) + "\n" print_str = print_str + " softirq = " + str ( cpu_status.softirq ) + "\n" print_str = print_str + " steal = " + str ( cpu_status.steal ) + "\n" print_str = print_str + " guest = " + str ( cpu_status.guest ) + "\n" if ( print_type == 1 ) or isset ( sys.argv,"disk" ) : print_str += " 硬盘信息如下:\n" disk_status = psutil.disk_partitions() for item in disk_status : print_str = print_str + " "+ str( item ) + "\n" if ( print_type == 1 ) or isset ( sys.argv,"user" ) : print_str += " 登录用户信息如下:\n " user_status = psutil.users() for item in user_status : print_str = print_str + " "+ str( item ) + "\n" print_str += "---------------------------------------------------------------\n" print ( print_str ) handle.write( print_str ) handle.close()
此时如果直接启动的话会报错(因为没有psutil模块)
下面安装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
安装过程中报错
原因:缺少python-dev的依赖环境, 安装它
yum -y install python-devel.x86_64
再次安装psutil
python setup.py install
安装成功
测试psutil模块是否安装成功
[root@localhost psutil-2.1.3]# python
>>> import psutil
>>> psutil.pids()
安装成功
运行脚本
./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) ---------------------------------------------------------------
成功!