linux下监控磁盘并发送邮件,使用Linux shell脚本来监视磁盘使用情况并发送邮件...

使用Linux shell脚本来监视磁盘使用情况并发送邮件

使用Linux shell脚本来监视磁盘使用情况并发送邮件

市场上有许多监控Linux系统的监控工具,当系统达到阈值时,它会发送一封电子邮件。它监视所有内容,例如CPU利用率,内存利用率,交换空间利用率,磁盘空间利用率等。但是,它更适合小型环境和大型环境。

想一想,如果你只有少量的系统,那么处理这种情况的最佳方法是什么。

是的,我们想编写一个shell脚本来实现。

在本教程中,我们将编写一个shell脚本来监视系统的磁盘空间使用情况。当系统达到给定阈值时,它将向相应的电子邮件地址发送电子邮件。在本文中,我们总共添加了四个shell脚本,每个脚本用于不同的目的。之后,我们将提出其他shell脚本来监视CPU,内存和交换空间利用率。

在此之前,我想澄清一件事,基于我观察到的shell脚本使用的磁盘空间使用情况。

大多数用户在多个博客上评论说,他们在运行磁盘空间使用脚本时遇到以下错误。

#sh /opt/script/disk-usage-alert-old.sh

的/dev /映射器/vg_2g-即lv_root

Test-script.sh:第7行: [:/dev/mapper/vg_2g-lv_root:整数表达式预期

/9.8G

是的,这是正确的。即使我第一次运行此脚本,我遇到了同样的问题。在那之后,我找到了根本原因。

在基于RHEL 5和RHEL 6的系统上运行包含df -h或df -H的shell脚本以获取磁盘空间警告时,您将找到上述错误消息,因为输出格式不正确,请检查以下输出。要解决这个问题,我们需要使用df -Ph(POSIX输出格式),但默认的df -h在基于RHEL 7的系统上运行正常。

#df -h

使用的文件系统大小可用使用%挂载

的/dev /映射器/vg_2g-即lv_root

10G 6.7G 3.4G 67%/

Tmpfs 7.8G 0 7.8G 0%/dev/shm

/dev/sda1 976M 95M 830M 11%/boot

的/dev /映射器/vg_2g-lv_home

5.0G 4.3G 784M 85%/home

的/dev /映射器/vg_2g-lv_tmp

4.8G 14M 4.6G 1%/tmp

方法1:Linux shell脚本,用于监视磁盘空间使用情况和发送邮件

您可以使用以下shell脚本来监视Linux系统上的磁盘空间使用情况。

当系统达到给定的阈值限制时,它将发送电子邮件。在此示例中,我们将阈值设置为60%用于测试目的,您可以更改此限制以满足您的需要。

如果多个文件系统达到给定阈值,它将发送多个消息,因为此脚本使用循环。

再次,替换您的电子邮件地址以获得此警告。

#vi /opt/script/disk-usage-alert.sh

#!/bin/sh的

Df -Ph | grep -vE'^ Filesystem | tmpfs | cdrom'| awk'{print $ 5,$ 1}'|读取输出;

回声$输出

使用=$(echo $ output | awk'{print $ 1}'| sed s /%//g)

分区=$(echo $ output | awk'{print $ 2}')

如果[$ used -ge 60];然后Echo'$(hostname)上的分区\'$ partition \'在$(date)'|上使用了$ used% mail -s'磁盘空间警报: $使用%使用$(主机名)'[email protected]

网络连接

完成

输出:我收到了以下两封电子邮件警告。

2g.CentOS7上的分区'/dev/mapper/vg_2g-lv_home'在Mon Apr 29 06使用了85%: 16: 14 IST 2019

2g.CentOS7上的分区'/dev/mapper/vg_2g-lv_root'在Mon Apr 29 06使用了67%: 16: 14 IST 2019

最终添加了一个cronjob来自动化它。它将每10分钟运行一次。

#crontab -e

*/10 * * * */bin/bash /opt/script/disk-usage-alert.sh

方法2:Linux shell脚本,用于监视磁盘空间使用情况和发送邮件

相反,您可以使用以下shell脚本。我们对上面的脚本做了一些修改。

#vi /opt/script/disk-usage-alert-1.sh

#!/bin/sh的

Df -Ph | grep -vE'^ Filesystem | tmpfs | cdrom'| awk'{print $ 5,$ 1}'|读取输出;

MAX=60%

回声$输出

使用=$(echo $ output | awk'{print $ 1}')

分区=$(echo $ output | awk'{print $ 2}')

如果[$ {used%?} -ge $ {max%?}];然后

Echo'$(hostname)上的分区\'$ partition \'使用了$(date)'|的$ mail -s'磁盘空间警报: $ used使用$(主机名)'[email protected]网络连接

完成

输出:我收到了以下两封电子邮件警告。

2g.CentOS7上的分区'/dev/mapper/vg_2g-lv_home'在Mon Apr 29 06使用了85%: 16: 14 IST 2019

2g.CentOS7上的分区'/dev/mapper/vg_2g-lv_root'在Mon Apr 29 06使用了67%: 16: 14 IST 2019

最终添加了一个cronjob来自动化它。它将每10分钟运行一次。

#crontab -e

*/10 * * * */bin/bash /opt/script/disk-usage-alert-1.sh

方法3:Linux shell脚本,用于监视磁盘空间使用情况和发送邮件

我更喜欢这种方法。因为它神奇地工作,所以您只会收到有关所有内容的电子邮件。

这非常简单明了。

*/10 * * * * df -Ph | sed s /%//g | awk'{if($ 5>

60)打印$ 0;}'| mail -s'磁盘空间警报开$(主机名)'[受电子邮件保护]

输出:我收到了一封关于所有警告的电子邮件。

使用的文件系统大小可用使用

/dev/mapper/vg_2g-lv_root 10G 6.7G 3.4G 67 /

/dev/mapper/vg_2g-lv_home 5.0G 4.3G 784M 85/home

方法4:Linux shell脚本,用于监视磁盘空间使用情况并为分区发送邮件

#vi /opt/script/disk-usage-alert-2.sh

#!/斌/庆典

使用=$(df -Ph | grep'/dev/mapper/vg_2g-lv_dbs'| awk {'print $ 5'})MAX=80%

如果[$ {used%?} -ge $ {max%?}];然后

$(主机名)上的Echo'The Mount Point'/DB'使用了$(日期)'|的$ mail -s' $(hostname)上的磁盘空间警报: $ used used'[email protected]

网络连接

输出:我收到了以下电子邮件警告。

2g.CentOS6上的分区/dev/mapper/vg_2g-lv_dbs在Mon Apr 29 06使用了82%: 16: 14 IST 2019

最终添加了一个cronjob来自动完成这项工作。它将每10分钟运行一次。

#crontab -e

*/10 * * * */bin/bash /opt/script/disk-usage-alert-2.sh

注意:您将在10分钟后收到电子邮件警告,因为脚本计划每10分钟运行一次(但不是10分钟,具体取决于时间)。

例如,这个例子。如果您的系统达到8: 25的限制,您将在5分钟后收到电子邮件警告。我希望现在能说清楚。

上一篇: 没有了

下一篇: 没有了

分享到:

8a7a8a2a91c2375951ff59429107623c.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值