监控磁盘使用率
yum -y install mailx
yum -y install sendmail
01 实现过程
一般我们通过df -hl这个命令来查看磁盘的使用率,如下:
比如上图中的例子(我是通过vm安装的centos,只分配了40G),可以看到/dev/sda3 磁盘挂载了用户主目录,总容量38G,已使用3.3G,使用率为9%,我们主要对9%这个数字来做监控,与设定值90%进行比较。
编写一个脚本,名为space.sh
先用awk 把命令行查看的使用率数字取出,可先在命令行做实验:
测试成功后写入脚本
监控磁盘空间使用情况,超过85%发送邮件预警
#! /bin/bash
LANG=en_US.UTF-8
diskUsed=$(df -h|awk -F '[ %]+' '/\/$/{print $5}')
logFile=/tmp/jiankong.log
function Sendmail(){
mail -s"监控报警" zzzzzz@163.com < $logFile
}
function check(){
if [ $diskUsed -ge 85 ];then
echo "磁盘使用率:${diskUsed}%" > /tmp/jiankong.log
Sendmail
fi
}
function main(){
check
}
main
然后配置好crontab自动执行,这里我设置每隔30分钟自动执行一次
*/30 * * * * sh /home/admin/check.sh
LANG=en_US.UTF-8 指定编码格式为UTF-8格式
awk的用法
$5代表第五列
echo “磁盘使用率:${diskUsed}%” > /tmp/jiankong.log
shell提供了花括号“{}”来限定一个变量的开始和结束。在紧跟变量输出字母后缀时,就必须要使用这个功能。
如这里的${diskUsed}%,diskUsed变量存储的是数字,加了一个%后缀
常见问题
问题一:
首先发送邮件要对qq邮箱设置->账户->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务->IMAP/SMTP服务 设置为 开启
得到一个授权码,问题二会用到
问题二:
编辑文件
vim /etc/mail.rc
随意位置添加
set from=qq号码@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=qq号码@qq.com
set smtp-auth-password=授权码
set smtp-auth=login
问题三:
如果不能发送 可以试下是否能发送成功
echo a | mailx -v -s “1” qqnum@qq.com
发送邮件到QQ邮箱,收不到邮件
发送邮件到163邮箱,可以收到邮件
参考链接 :
Linux脚本编写程序监控系统信息并设置报警自动发送邮件 :https://blog.csdn.net/qq_42747175/article/details/83186938?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase