十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本篇内容介绍了“怎么用Linux Shell脚本来监控磁盘使用情况并发送邮件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
方法一:Linux Shell 脚本来监控磁盘空间使用率和发送邮件
同江ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
你可以使用下列 shell 脚本在 Linux 系统中来监控磁盘空间使用率。
当系统到达给定的阀值限制时,它将发送一封邮件。在这个例子中,我们设置阀值为 60% 用于测试目的,你可以改变这个限制来符合你的需求。
如果超过一个文件系统到达给定的阀值,它将发送多封邮件,因为这个脚本使用了循环。
同样,替换你的邮件地址来获取这份警告。# vi /opt/script/disk-usage-alert.sh #!/bin/shdf -Ph | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5,$1 }' | while read output;do echo $output used=$(echo $output | awk '{print $1}' | sed s/%//g) partition=$(echo $output | awk '{print $2}') if [ $used -ge 60 ]; then echo "The partition \"$partition\" on $(hostname) has used $used% at $(date)" | mail -s "Disk Space Alert: $used% Used On $(hostname)" [email protected] fidone
输出:我获得了下列两封邮件警告。The partition "/dev/mapper/vg_2g-lv_home" on 2g.CentOS7 has used 85% at Mon Apr 29 06:16:14 IST 2019 The partition "/dev/mapper/vg_2g-lv_root" on 2g.CentOS7 has used 67% at Mon Apr 29 06:16:14 IST 2019
最终添加了一个 cronjob 来自动完成。它会每 10 分钟运行一次。# crontab -e*/10 * * * * /bin/bash /opt/script/disk-usage-alert.sh方法二:Linux Shell 脚本来监控磁盘空间使用率和发送邮件
作为代替,你可以使用下列的 shell 脚本。对比上面的脚本我们做了少量改变。# vi /opt/script/disk-usage-alert-1.sh #!/bin/shdf -Ph | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5,$1 }' | while read output;do max=60% echo $output used=$(echo $output | awk '{print $1}') partition=$(echo $output | awk '{print $2}') if [ ${used%?} -ge ${max%?} ]; then echo "The partition \"$partition\" on $(hostname) has used $used at $(date)" | mail -s "Disk Space Alert: $used Used On $(hostname)" [email protected] fidone
输出:我获得了下列两封邮件警告。The partition "/dev/mapper/vg_2g-lv_home" on 2g.CentOS7 has used 85% at Mon Apr 29 06:16:14 IST 2019 The partition "/dev/mapper/vg_2g-lv_root" on 2g.CentOS7 has used 67% at Mon Apr 29 06:16:14 IST 2019
最终添加了一个 cronjob 来自动完成。它会每 10 分钟运行一次。# crontab -e*/10 * * * * /bin/bash /opt/script/disk-usage-alert-1.sh方法三:Linux Shell 脚本来监控磁盘空间使用率和发送邮件
我更喜欢这种方法。因为,它工作起来很有魔力,你只会收到一封关于所有事的邮件。
这相当简单和直接。*/10 * * * * df -Ph | sed s/%//g | awk '{ if($5 > 60) print $0;}' | mail -s "Disk Space Alert On $(hostname)" [email protected]
输出: 我获得了一封关于所有警告的邮件。Filesystem Size Used Avail Use Mounted on/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方法四:Linux Shell 脚本来监控某个分区的磁盘空间使用情况和发送邮件# vi /opt/script/disk-usage-alert-2.sh #!/bin/bashused=$(df -Ph | grep '/dev/mapper/vg_2g-lv_dbs' | awk {'print $5'})max=80%if [ ${used%?} -ge ${max%?} ]; thenecho "The Mount Point "/DB" on $(hostname) has used $used at $(date)" | mail -s "Disk space alert on $(hostname): $used used" [email protected]fi
输出: 我得到了下面的邮件警告。The partition /dev/mapper/vg_2g-lv_dbs on 2g.CentOS6 has used 82% at Mon Apr 29 06:16:14 IST 2019
最终添加了一个 cronjob 来自动完成这些工作。它将每 10 分钟运行一次。# crontab -e*/10 * * * * /bin/bash /opt/script/disk-usage-alert-2.sh
注意: 你将在 10 分钟后收到一封邮件警告,因为这个脚本被计划为每 10 分钟运行一次(但也不是精确的 10 分钟,取决于时间)。
例如这个例子。如果你的系统在 8:25 到达了限制,你将在 5 分钟后收到邮件警告。希望现在讲清楚了。