ateacup 2017-10-22
Python psutil简单示例,利用psutil编写简单的检测小脚本
0.安装psutil模块
psutil官网:https://pythonhosted.org/psutil/
下载:
# wget https://pypi.python.org/packages/57/93/47a2e3befaf194ccc3d05ffbcba2cdcdd22a231100ef7e4cf63f085c900b/psutil-5.2.2.tar.gz#md5=bb98d48796cd76d9ccee871aad720f9c
解压:
tar xf psutil-5.2.2.tar.gz
安装:
cd psutil-5.2.2/
rpm -qa | grep "python-devel" || yum -y install python-devel && python setup.py install
[ $? -eq 0 ] && echo "Install OK" || echo "Install fail"
当出现Install OK时,则证明psutil安装完成
编写python脚本
#!/usr/bin/python
#Filename:pustil_free.py
#导入psutil 和 os
import psutil,os
#定义文件
file = open(r'log.txt','a')
#获取已经已经使用的内存
free_used = psutil.virtual_memory().used
#获取总内存
free_total = psutil.virtual_memory().total
#计算使用内存百分数
percentage_free = free_used * 1.0 / free_total * 100
#当free>80时
if percentage_free >= 80:
templist = []
#获取所有进程的pid
for pid in psutil.pids():
del templist[:]
p = psutil.Process(pid)
#当使用内存梁不等于0时执行此if
if p.memory_percent() != 0 :
#获取内存的名字
templist.append(p.name())
#获取内存消耗的百分比
templist.append(p.memory_percent())
temp_value = templist
#重定向值
print >> file ,(templist[0],templist[1])
#清楚文件
file.close()
########################################################################
#发送邮件模块 sendmail('log.txt')
#######################################################################
#删除log文件以便下次执行脚本重新生成
os.remove('log.txt')