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的警告内容了

完结,撒花~~

目录
相关文章
|
21天前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
45 2
6种方法打造出色的Shell脚本
|
7天前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
26 1
|
12天前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
31 2
|
20天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
194 2
|
22天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
6月前
|
Shell 索引
shell脚本入门到实战(四)- 数组
shell脚本入门到实战(四)- 数组
|
6月前
|
Shell
shell脚本入门到实战(三) - 变量
shell脚本入门到实战(三) - 变量
|
6月前
|
Shell Linux 人机交互
shell脚本入门到实战(二)--shell输入和格式化输出
shell脚本入门到实战(二)--shell输入和格式化输出
411 0
|
6月前
|
监控 关系型数据库 Shell
Shell脚本入门:从基础到实践,轻松掌握Shell编程
Shell脚本入门:从基础到实践,轻松掌握Shell编程
132 3
|
6月前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)