本脚本采用while死循环监控内存用了多少,若有单个内存使用率到达90%或者高于90%,那就杀死该进程。并保存到日志文件
变量解释
ps aux 显示所有的程序状态
grep -v PID 去除包含PID进程号的行
sort -rn 以反序排列
head - 1 过滤第一行
awk ‘{print $4}’ 截取命令中第四列
cut -d ‘.’ -f 1 shell脚本中不能有小数点做变量
#!/bin/bash
mem=`ps aux|grep -v PID|sort -rn |head -1|awk '{print $4}'| cut -d '.' -f 1`
high=`ps aux|grep -v PID|sort -rn |head -1|awk '{print $2}'`
date=`date +%F`
log=`ps -aux|sort -rn|head -2`
while :;
do
if [ $mem -ge 90 ]
then
echo $log >> /var/log/$date-killmem.log
kill -9 $high
fi
sleep 30
done