【Shell编程练习】监控内存和磁盘容量,小于给定值时报警

系列文章目录

输出Hello World
通过位置变量创建 Linux 系统账户及密码



分析

对于磁盘容量,可以使用df命令查看指定指定分区的磁盘使用情况。比如
在这里插入图片描述

然后我们需要从这段输出中提取我们想要的信息。在这里就是Available字段的值。我们使用awk来完成:df / | awk '/\//{print $4}’。其中这个 awk 命令的作用是在输入中查找包含斜杠(/)的行,并打印这些行的第四个字段。

在这里插入图片描述

对于内存的使用情况,可以使用free命令:

在这里插入图片描述

  • total: 总物理内存。
  • used: 已经被使用的物理内存。
  • free: 空闲的物理内存。
  • shared: 多个进程共享使用的内存。
  • buff/cache: 用于缓存的内存,包括文件缓存和用于内核的缓冲区。
  • available: 可用内存,表示系统可以立即分配给进程或用于缓存的内存。

同样,我们使用awk命令提取想要的信息:free | awk '/Mem/{print $4}',这个命令是通过匹配包含字符串 “Mem” 的行,并打印该行的第四个字段,即空闲内存的大小。

在这里插入图片描述

至于给指定用户发送邮件,可以使用mail命令。比如 echo "这是邮件正文" | mail -s "邮件主题" recipient@example.com。这个例子中,echo 命令用于创建邮件正文,-s 选项用于指定邮件主题,而 recipient@example.com 是收件人的电子邮件地址。


代码实现

#! /bin/bash

# 该脚本实现的功能:实时监控本机内存和硬盘剩余空间 ,剩余内存小于500M、
# 根分区剩余空间小于1000M时,发送报警邮件给 root管理员

# 提取根分区剩余空间
disk_size=$(df / | awk '/\//{print $4}')

# 提取内存剩余空间
mem_size=$(free | awk '/Mem/{print $4}')

while :
do
# 注意内存和磁盘提取的空间大小都是以 Kb 为单位
if [ $disk_size -lt 512000 ] && [ $men_size -lt 1024000 ]
then
        mail -s "Warning" root <<EOF
                资源不足
EOF
fi
done


运行结果

在这里插入图片描述

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不怕娜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值