检查内存使用情况,当内存可使用等于100时,释放缓存

[root@localhost thy]#  cat checkMem.sh
#!/bin/bash
#防止内存溢出问题
used=`free -m | awk 'NR==2' | awk '{print $3}'`
free=`free -m | awk 'NR==2' | awk '{print $4}'`
echo "=======================================" >> /var/log/mem.log
data >> /var/log/mem.log
echo "Memory usage | [Use: ${used}MB][Free: ${free}MB]" >> /var/log/mem.log
if [ $free -le 100 ];then
sync && echo 1 > /proc/sys/vm/drop_caches
sync && echo 2 > /proc/sys/vm/drop_caches
sync && echo 3 > /proc/sys/vm/drop_caches
echo "OK" >> /var/log/mem.log
else
echo "Not required" >> /var/log/mem.log

循环版本

[root@localhost thy]# cat ./clear_buff_cache.sh
#!/bin/bash
USED=`free -m | awk 'NR==2' | awk '{print $3}'`
FREE=`free -m | awk 'NR==2' | awk '{print $4}'` while true;
do
echo "===========================" >> /var/log/check_buff_cache.log
date >> /var/log/check_buff_cache.log
echo "Memory usage | [Use:${USED}MB][Free:${FREE}MB]" >> /var/log/check_buff_cache.log
if [ $FREE -le ] ; then
sync && echo > /proc/sys/vm/drop_caches
sync && echo > /proc/sys/vm/drop_caches
sync && echo > /proc/sys/vm/drop_caches
echo "OK" >> /var/log/check_buff_cache.log
else
echo "Not required" >> /var/log/check_buff_cache.log
fi
sleep
done

监控内存和磁盘容量,小于给定值时报警

#!/bin/bash
# 实时监控本机内存和硬盘剩余空间,剩余内存小于500M,根分区剩余空间小于1000M时,发送报警邮件给root管理员 # 得到根分区、内存剩余空间
disk_size=$(df / | awk '/\//{print $4}')
mem_size=$(free | awk '/Mem/{print $4}') # PS:内存和磁盘提取的空间大小是以kb为单位
while :
do
# 判断内存和磁盘容小于等于给定值时发送报警邮件
if [ $disk_size -le 1024000 -a $mem_size -le 512000 ];
then
mail -s "Warning" root <<EOF
Insufficient resources,资源不足
EOF
fi
done

注意EOF:

[root@VM_0_10_centos shellScript]# ./checkMem.sh
./checkMem.sh: line 18: warning: here-document at line 14 delimited by end-of-file (wanted `EOF')
./checkMem.sh: line 19: syntax error: unexpected end of file

PS:报如上错误是因为脚本中的EOF前面有空格。EOF前后都不应该有空格或其他符号

关于内存问题参考网址:https://www.cnblogs.com/muahao/p/6531772.html

最新文章

  1. oracle数据库创建后要做的事情
  2. SCOI2009粉刷匠
  3. Web API应用架构设计分析(1)
  4. CSS基础(三):选择器
  5. 12.iscsi-target
  6. 检测SqlServer服务器CPU是否瓶颈
  7. Elasticsearch基础概念理解
  8. dotfuscator使用方法
  9. 弹出层 div dialog
  10. Hadoop集群出现no data node to stop的解决方案
  11. 前端复制功能的若干 -- document.execCommand()
  12. Extjs2.0 desktop 动态创建桌面图标和开始菜单
  13. uva140
  14. mac环境使用ATS验证
  15. POJ1037 A decorative fence
  16. mysql提权常用方法。 hack某某
  17. R多行交叉作图
  18. java 扫描输入
  19. redux概念介绍
  20. 上传通用化 VHD 并使用它在 Azure 中创建新 VM

热门文章

  1. H5生成二维码
  2. Mysql优化之Explain查询计划查看
  3. idea设置类注释和方法注释
  4. .net core程序强制以管理员权限启动
  5. Linux软件安装——服务管理的命令
  6. PHP面试题2019年新浪工程师面试题及答案解析
  7. php 的定界符 &lt;&lt;&lt;eof
  8. 函数的名称空间,函数的嵌套(global, nonlocal),函数名的运用
  9. docker 安装 rabbitMQ服务器
  10. flask接收跨域请求