【shell脚本】检查内存使用情况===chenkMen.sh
2024-09-05 14:42:27
检查内存使用情况,当内存可使用等于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
最新文章
- oracle数据库创建后要做的事情
- SCOI2009粉刷匠
- Web API应用架构设计分析(1)
- CSS基础(三):选择器
- 12.iscsi-target
- 检测SqlServer服务器CPU是否瓶颈
- Elasticsearch基础概念理解
- dotfuscator使用方法
- 弹出层 div dialog
- Hadoop集群出现no data node to stop的解决方案
- 前端复制功能的若干 -- document.execCommand()
- Extjs2.0 desktop 动态创建桌面图标和开始菜单
- uva140
- mac环境使用ATS验证
- POJ1037 A decorative fence
- mysql提权常用方法。 hack某某
- R多行交叉作图
- java 扫描输入
- redux概念介绍
- 上传通用化 VHD 并使用它在 Azure 中创建新 VM