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

完结,撒花~~

目录
相关文章
|
2月前
|
缓存 Linux 数据安全/隐私保护
Linux环境下如何通过手动调用drop_caches命令释放内存
总的来说,记录住“drop_caches” 命令并理解其含义,可以让你在日常使用Linux的过程中更加娴熟和自如。
511 23
|
8月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
1842 6
|
5月前
|
缓存 Linux
Linux查看内存命令
1. free free命令是最常用的查看内存使用情况的命令。它显示系统的总内存、已使用内存、空闲内存和交换内存的总量。 free -h • -h 选项:以易读的格式(如GB、MB)显示内存大小。 输出示例: total used free shared buff/cache available Mem: 15Gi 4.7Gi 4.1Gi 288Mi 6.6Gi 9.9Gi Swap: 2.0Gi 0B 2.0Gi • to
291 2
|
5月前
|
存储 固态存储
磁盘和内存的区别
存储特性: • 磁盘:非易失性存储,数据在断电后不会丢失,适合长期存储数据。 • 内存:易失性存储,数据在断电后会丢失,适合临时存储当前运行的程序和数据。 容量: • 磁盘:容量通常较大,从几百GB到数TB不等,适合存储大量的文件和数据。 • 内存:容量相对较小,一般在几GB到几十GB之间,用于提供快速的临时存储空间。 速度: • 磁盘:读写速度较慢,HDD一般在几十MB/s,SSD可以达到几百MB/s甚至数GB/s。 • 内存:读写速度非常快,通常在几十纳秒到几百纳秒之间,能够快速响应CPU的指令。
152 2
|
5月前
|
监控 Linux
centos 中查看 内存及磁盘使用率
通过这些命令,您可以全面了解系统资源的使用情况,从而更好地管理和优化系统。
964 22
|
6月前
|
消息中间件 存储 缓存
kafka 的数据是放在磁盘上还是内存上,为什么速度会快?
Kafka的数据存储机制通过将数据同时写入磁盘和内存,确保高吞吐量与持久性。其日志文件按主题和分区组织,使用预写日志(WAL)保证数据持久性,并借助操作系统的页缓存加速读取。Kafka采用顺序I/O、零拷贝技术和批量处理优化性能,支持分区分段以实现并行处理。示例代码展示了如何使用KafkaProducer发送消息。
|
7月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
682 7
|
8月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
3873 2
|
10月前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
616 5
|
10月前
|
监控 Ubuntu API
Python脚本监控Ubuntu系统进程内存的实现方式
通过这种方法,我们可以很容易地监控Ubuntu系统中进程的内存使用情况,对于性能分析和资源管理具有很大的帮助。这只是 `psutil`库功能的冰山一角,`psutil`还能够提供更多关于系统和进程的详细信息,强烈推荐进一步探索这个强大的库。
131 1

热门文章

最新文章