学习笔记-0x01->linux监测服务器状态并使用mail发送邮件

一、任务需求

        1.监控内容包括CPU使用率,内存使用率,根分区的磁盘占有率
        2.百分比只需精确到个位,如7%,12%,23%等
        3.定时监测,3分钟一次记录到log.txt日志文件
        4.出现以下任意情况时告警:磁盘占有率超过90%,CPU使用率超过80%,内存使用率超过90%,告警邮件通过mail命令发送到指定邮箱

二、实现步骤

        1.监测CPU、内存、根分区磁盘占有率

        这里监测cpu使用mpstat命令,mpstat命令会显示各个可用cpu的信息;因此需要对信息进行一些处理:

CPU=$(expr 100 - $(mpstat | tail -1 | awk '{print $12}' | awk -F. '{print $1}'))

         这里使用tail显示末尾最后一行,awk在对文本进行处理,-F会在末尾加上一个空格

        而在shell脚本中,我们将使用CPU对处理好的数据进行调用。(此处代码为网学,非自写)

        2.3分钟记录一次到log.txt

        实现这一功能,使用的是 “>>” 重定向,“>>”会把文本拼接到文件的末尾。

log=$(date)$(echo ' disk:')${disk}$(echo ' CPU:')${CPU}$(echo ' mem:')${mem}
echo $log >> log.txt

        date是日期,echo回显拼接数据,最后重定向写道日志里。

        3.出现紧急情况告警

        这里使用的是,mail命令,除去这一方法,大家还可以使用在自己的linux上搭建邮箱服务器的方式发送邮件,我这里使用的是外置smtp服务进行的邮件发送。

mail -s 'warning disk' 自己的邮箱@qq.com < ./log.txt

        在使用mail前,首先对文件 /etc/mail.rc 文件进行配置:

         sudo vi /etc/mail.rc

# For Linux and BSD, this should be set.
set bsdcompat
set from=发送邮箱@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=使用者@qq.com
set smtp-auth-password=密码或授权码
set smtp-auth=login

        sudo使用root方式使用后续命令,一般使用后会获得持续一段时间的root权限。

        授权码的获取:

        

 以上步骤完成后,可能遇到无法发出邮件的可能,这是可以尝试关闭Linux防火墙。

systemctl stop firewalld.service

 关闭后还无法收到,可以到邮箱的设置中设置一下白名单。

 

#/bin/bash
#Verson:0.1
disk=$(df -Th | grep '/$' | awk '{print $6}' | awk -F% '{print $1}')
CPU=$(expr 100 - $(mpstat | tail -1 | awk '{print $12}' | awk -F. '{print $1}'))
mem=$(expr $(free -m | grep "Mem:" | awk '{print $7}') \* 100 / $(free -m | grep "Mem:" | awk '{print $2}'))
log=$(date)$(echo ' disk:')${disk}$(echo ' CPU:')${CPU}$(echo ' mem:')${mem}
echo $log >> log.txt
if [ $disk -ge 90 ] ;then
        mail -s 'warning disk' 2404967389@qq.com < ./log.txt
elif [ $CPU -ge 80 ] ; then
        mail -s 'warning CPU' 2404967389@qq.com < ./log.txt
elif [ $mem -ge 90 ] ; then
        mail -s 'warning mem' 2404967389@qq.com < ./log.txt
fi
sleep 30
./本shell脚本名字.sh

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值