版权声明:本文为博主原创文章,转载请注明CSDN博客源地址!共同学习,一起进步~
https://blog.csdn.net/qq_29473881/article/details/84257772
shell 脚本监控磁盘使用情况,并邮件预警通知:
#!/bin/bash
echo "--monitoring--"
for d in `df -P | grep /dev | awk '{print $5}' | cut -f 1 -d "%"`
do
if [ $d -gt 1 ]
then
echo "over!"
cat /test/a.txt | mail -s "mail subject" ******@163.com
else
echo "normal!"
fi
done
稍微解释下关键代码的意思:
for d in `df -P | grep /dev | awk '{print $5}' | cut -f 1 -d "%"`
其中第一个 ` 符号是Esc下面的那个符号,这个别弄错。'{print $5}' 是英文的小顿号,$5 为使用磁盘的大小,把%好截取掉了。截取use的数值,如下图:
因为在虚拟机上测试的,硬盘使用比较少,就设定超过5%的时候就发邮件警告了,实际运用时可改成90%,另外经测试发现QQ邮箱不行,接收不到邮件。163邮箱可以,其它邮箱还未测试。
测试结果:
a.txt 文件内容:
cat /test/a.txt | mail -s "mail subject" ******@163.com
这行代码,即把a.txt文件的内容直接发送到指定邮箱里面去。
另外,通过 crotab -e 命令设置crotab定时时间,设置为没三小时执行一次脚本
(可查看此篇文章详细介绍crotab的定时设置 https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html)
注意事项:
切勿直接copy代码,自己手写最好,以免出现编码格式问题。如有问题,请留言