Shell实现强制释放内存脚本分享

 更新时间:2015年02月12日 09:48:42   投稿:junjie  
这篇文章主要介绍了Shell实现强制释放内存脚本分享,本文直接给出实现代码,并对每一句代码都做了讲解了,需要的朋友可以参考下

公司服务器最近两天老是因为内存被使用满而造成死机,实在是受不了老叫机房的人去帮忙重启,专门写了个脚本来释放下内存,当然这台服务器不是太重要,我粗鲁的处理方式估计不会适合大多数服务器,请大家使用之前先考虑清楚,不然造成数据丢失就不关我的事了.

脚本内容:
cat check-mem.sh

复制代码 代码如下:

#!/bin/bash
mem_total=`free -m | awk 'NR==2' | awk '{print $2}'`
mem_free=`free -m | awk 'NR==3' | awk '{print $4}'`
mem_used=`free -m | grep Mem | awk '{print  $3}'`
if (($mem_used != 0)); then
mem_per=0`echo "scale=2;$mem_free/$mem_total" | bc`
DATA="$(date -d "today" +"%Y-%m-%d-%H-%M") free percent is : $mem_per"
echo $DATA >>/var/log/mem_detect.log
mem_warn=0.20
mem_now=`expr $mem_per \> $mem_warn`
if (($mem_now == 0)); then
sync
echo 3 > /proc/sys/vm/drop_caches
fi
fi

下面说明下吧:

复制代码 代码如下:

#!/bin/bash

#系统分配的区总量 
mem_total=`free -m | awk 'NR==2' | awk '{print $2}'` 

#当前剩余的大小 
mem_free=`free -m | awk 'NR==3' | awk '{print $4}'`
 
#当前已使用的used大小 
mem_used=`free -m | grep Mem | awk '{print  $3}'` 
 
if (($mem_used != 0)); then 
 
#如果已被使用,则计算当前剩余free所占总量的百分比,用小数来表示,要在小数点前面补一个整数位0 
mem_per=0`echo "scale=2;$mem_free/$mem_total" | bc` 
DATA="$(date -d "today" +"%Y-%m-%d-%H-%M") free percent is : $mem_per"
echo $DATA >> /var/log/mem_detect.log
#设置的告警值为20%(即使用超过80%的时候告警)。 
mem_warn=0.20 
 
#当前剩余百分比与告警值进行比较(当大于告警值(即剩余20%以上)时会返回1,小于(即剩余不足20%)时会返回0 ) 
mem_now=`expr $mem_per \> $mem_warn` 
 
#如果当前使用超过80%(即剩余小于20%,上面的返回值等于0),释放内存
if (($mem_now == 0)); then 
sync
echo 3 > /proc/sys/vm/drop_caches
fi
fi

相关文章

  • Linux 命令expect使用详解

    Linux 命令expect使用详解

    expect是由Don Libes基于Tcl语言开发的,是一种脚本语言,主要应用于自动化交互式操作的场景,借助Expect处理交互的命令,本文给大家介绍Linux 命令expect使用详解,感兴趣的朋友一起看看吧
    2023-11-11
  • Linux 中 ls 命令详解

    Linux 中 ls 命令详解

    这篇文章主要介绍了Linux 中 ls 命令详解的相关资料,需要的朋友可以参考下
    2023-05-05
  • shell中的数组操作小结和冒泡排序实现脚本分享

    shell中的数组操作小结和冒泡排序实现脚本分享

    这篇文章主要介绍了shell中的数组操作小结和冒泡排序实现脚本分享,需要的朋友可以参考下
    2014-12-12
  • Linux 中fork的执行的实例详解

    Linux 中fork的执行的实例详解

    这篇文章主要介绍了Linux 中fork的执行的实例详解的相关资料,需要的朋友可以参考下
    2017-07-07
  • Linux动态库函数的详解

    Linux动态库函数的详解

    这篇文章主要介绍了Linux动态库函数的详解的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分的内容,需要的朋友可以参考下
    2017-10-10
  • shell脚本按当前日期输出日志的实现

    shell脚本按当前日期输出日志的实现

    这篇文章主要介绍了shell脚本按当前日期输出日志的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • linux中的vi和vim编辑器操作方法

    linux中的vi和vim编辑器操作方法

    这篇文章主要介绍了linux中的vi和vim编辑器操作方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-05-05
  • Linux下实现SNMP一键安装的Shell脚本

    Linux下实现SNMP一键安装的Shell脚本

    这篇文章主要介绍了Linux下实现SNMP一键安装的Shell脚本,非常实用,需要的朋友可以参考下
    2014-07-07
  • linux系统mysql自动备份并使用ftp上传的方法

    linux系统mysql自动备份并使用ftp上传的方法

    这篇文章主要介绍了linux系统自动导出mysql备份,并上传到指定ftp,还可以删除旧的备份文件,大家参考使用吧
    2014-01-01
  • touch shell脚本并修改为777权限的方法

    touch shell脚本并修改为777权限的方法

    这篇文章主要介绍了touch shell脚本并修改为777权限的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06

最新评论