shell:linux系统性能参数监控并利用maill发送至邮箱

意义:

  每天定时将服务器系统参数发送至管理员邮箱,便于管理员对于系统性能的把控,减少登录系统再使用命令的繁琐步骤。

shell监控脚本:

 1 #!/bin/bash
 2 hostip=`ifconfig ens160 | grep inet | awk 'NR==1{print $2}'`
 3 cpu_usage=$(echo "100-`top -n1 | awk 'NR==3{print $8}'`"|bc)
 4 mem_total=`free -h |awk '/Mem:/{print $2}'`
 5 mem_used=`free -m |awk '/Mem:/{print $3+$6}'`
 6 mem_free=`free -h |awk '/Mem:/{print $4}'`
 7 mem_rate=$(echo "scale=2;$mem_used *100/ `free -m |awk '/Mem:/{print $2}'`"|bc)
 8 disk_total=`df -h / | tail -n 1 | awk '{ print $2}'`
 9 disk_used=`df -h / | tail -n 1 | awk '{ print $3}'`
10 disk_free=`df -h / | tail -n 1 | awk '{ print $4}'`
11 disk_rate=`df -h / | tail -n 1 | awk '{ print $5}'`
12 
13 echo -e "
^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
14 echo -e "***主机$(hostname)系统监控数据***"
15 echo "[$hostip]"
16 echo "$(date)"
17 echo -e "----------------------------"
18 echo -e "
|=-> cpu利用率:$cpu_usage%"
19 echo -e "
|=-> 内存利用率:$mem_rate%      总内存:$mem_total       已使用内存(包含buff/cache): $mem_used M   空闲内存:$mem_free"
20 echo -e "
|=-> 磁盘利用率:$disk_rate       磁盘总空间:$disk_total            已使用磁盘空间: $disk_used           空闲磁盘空间:$disk_free"
21 echo -e '''
22 ----------------------
23 Powered by: 73号弓箭手
24 Copyright © Cooper_73
25 ----------------------
26 '''

脚本执行效果:

 

发送至邮箱:

  利用linux系统的mail发送邮件:

  配置mail:/etc/mail.rc

1 设置发件人地址、SMTP 服务器、发件人邮箱名、密码、
2 set from=xxx@qq.com
3 set smtp=smtp.qq.com
4 set smtp-auth-user=xxx@qq.com
5 set smtp-auth-password=xxxxx
6 set smtp-auth=login

注意:使用QQ邮箱时,由于腾讯安全限制,密码需要使用授权码(在qq邮箱设置中获取授权码),企业邮箱无此限制,直接使用邮箱密码。

配置定时任务:

1  ./linux_system_monitor.sh | mail -s "Linux_System_Monitor-Report-$(date)" mail@mail.com.cn 

触发定时任务验证:

原文地址:https://www.cnblogs.com/cooper-73/p/10155624.html