shell脚本写出监控内存,磁盘使用率的脚本,超过阈值,用“wall”命令发警报

简介: shell脚本写出监控内存,磁盘使用率的脚本,超过阈值,用“wall”命令发警报

1 脚本运行前准备

需要用到“bc”软件来进行运算

yum -y install bc

2 创建一个脚本

vim /opt/.zhuzhu.sh
#!/bin/bash 
# author chenjiao
#获取内存信息
MEMTOTAL=$(awk '/^MemTotal/ {print $2}' /proc/meminfo)
MEMAV=$(awk '/^MemAvailable/ {print $2}' /proc/meminfo)
MEMUSED=$(echo "$MEMTOTAL - $MEMAV" |bc)
MEMINFO=$(echo "$MEMUSED * 100 / $MEMTOTAL"|bc)
if [[ $MEMINFO -gt 70 ]];then
        echo "Memory usage is too high: $MEMINFO%" >> /tmp/info.txt
fi
#获取 / 磁盘信息
DISKTOTAL=$( df |grep -w "/"|awk '{print $2}')
DISKUSED=$( df |grep -w "/"|awk '{print $3}')
DISKINFO=$(echo "$DISKUSED * 100 / $DISKTOTAL" |bc)
if [[ $DISKINFO -gt 80 ]];then
        echo "Disk usage is too high: $DISKINFO%" >> /tmp/info.txt
fi
if [[ -f /tmp/info.txt ]];then
        cat /tmp/info.txt |wall
fi
mv /tmp/{info.txt,.info.txt.`date +"%Y.%m.%d-%H:%M:%S"`}

MEMTOTAL 是为了查找到总内存大小,MEMAV这个变量是为了取出可用的内存大小。用总内存大小减去可用内存大小,即为已用的内存数。free这命令也能截取出来,但本人觉得这个更加简洁

我服务器就一块磁盘,所以我grep -w 精准匹配到“/” 下,来进行计算

这个脚本的阈值,可以根据实际需求来调整

可以给这个脚本一个执行权限

chmod +x /opt/.zhuzhu.sh

3 结合crontab来定时检查内存和磁盘使用情况

crontab -e

创建任务,如果是普通用户,请记得加-u 用户名

crotab执行命令的时间间隔,日期取决于实际需求,我设置为隐藏文件名,每五分钟执行一次

*/5 * * * * /bin/bash /opt/.zhuzhu.sh

截图一个内存超过70% 的公告来看看~

[root@k8s-master ~]# Broadcast message from root@k8s-master (Sun Aug

7 22:45:01 2022):

Memory usage is too high: 75%

然后使用这台服务器的其他用户都可以看到这个wall的警告内容了

完结,撒花~~

目录
相关文章
|
15天前
|
Shell
Shell脚本有哪些基本语法?
【9月更文挑战第4天】
36 17
|
15天前
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
28 12
|
14天前
|
网络协议 关系型数据库 MySQL
Shell 脚本案例
Shell 脚本案例
28 8
|
14天前
|
Shell Linux 开发工具
linux shell 脚本调试技巧
【9月更文挑战第3天】在Linux中调试shell脚本可采用多种技巧:使用`-x`选项显示每行命令及变量扩展情况;通过`read`或`trap`设置断点;利用`echo`检查变量值,`set`显示所有变量;检查退出状态码 `$?` 进行错误处理;使用`bashdb`等调试工具实现更复杂调试功能。
|
21天前
内存或磁盘不足,excel无法再次打开或保存任何文档
内存或磁盘不足,excel无法再次打开或保存任何文档
|
19天前
|
运维 监控 Shell
自动化运维之宝:编写高效的Shell脚本
【8月更文挑战第31天】在运维的世界里,Shell脚本是一把瑞士军刀,它让日常任务变得简单而高效。本文将通过浅显易懂的语言和实际案例,带你领略Shell脚本的魅力,并教你如何打造属于自己的自动化工具箱。无论你是初学者还是资深运维,这篇文章都将为你打开一扇窗,让你看到不一样的风景。让我们一起探索Shell脚本的世界吧!
|
27天前
|
存储 Shell 数据安全/隐私保护
minio一键安装脚本分享(shell和python)
minio一键安装脚本分享(shell和python)
40 0
|
1月前
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
|
2月前
|
存储 分布式计算 Hadoop
HadoopCPU、内存、存储限制
【7月更文挑战第13天】
187 14
|
21天前
|
存储 监控 Docker
如何限制docker使用的cpu,内存,存储
如何限制docker使用的cpu,内存,存储