1、编辑shell脚本

[root@web03 ~/monitor_scripts]# cat inspect.sh
#!/bin/bash # 设置磁盘的阀值
disk_max=90 # 设置监控inode的分区
partition="/dev/sda3" # 设置磁盘inode使用率的阀值
disk_inode_use=90 # 这是mem的阀值
mem_max_use=90 # CPU的空闲程度
cpu_less=10 function disk_space_info() {
disk_used=$(df -h|grep /$|awk '{print $(NF-1)}'|cut -d% -f1)
if [ $disk_used -gt $disk_max ];then
Msg="TIME: $(date +%F-%T)
HostName: $(hostname)
IP: $(hostname -I)
Info: 磁盘使用率超过80%,请及时处理!"
mail $Msg
fi
} function disk_inode_use() {
inode_used=$(df -i /dev/sda3 |tail -1|awk -F'[ %]+' '{print $5}')
if [ $inode_used -gt $disk_inode_use ];then
Msg="TIME: $(date +%F-%T)
HostName: $(hostname)
IP: $(hostname -I)
Info: ${partition}分区inode使用率超过${disk_inode_use}%,请及时处理!"
mail $Msg
fi
} function monitor_mem() {
mem_used=$(free|grep Mem|awk '{printf ($3/$2)*100}'|cut -d. -f1)
if [ $mem_used -gt $mem_max_use ];then
Msg="TIME: $(date +%F-%T)
HostName: $(hostname)
IP: $(hostname -I)
Info: 内存使用率超过${mem_max_use}%,请及时处理!"
mail $Msg
fi
} function monitor_cpu() {
cpu_used=$(vmstat 1 3|awk 'NR>=3{x=x+$(NF-2)} END {printf("%u",x/3)}')
if [ $cpu_used -lt $cpu_less ];then
Msg="TIME: $(date +%F-%T)
HostName: $(hostname)
IP: $(hostname -I)
Info: cpu空闲率小于${cpu_less},请及时处理!"
mail $Msg
fi
} disk_space_info
disk_inode_use
monitor_mem
monitor_cpu

2、编辑python脚本发送邮件

在使用的时候把mail文件授予x权限,再复制到/usr/bin,目录下当作命令执行。

[root@web03 ~/monitor_scripts]# cat mail
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
import smtplib
import email.mime.multipart
import email.mime.text server = 'smtp.qq.com' # 邮箱服务器
port = '25' # 邮箱服务器端口 def sendmail(server,port,user,pwd,msg):
smtp = smtplib.SMTP()
smtp.connect(server,port)
smtp.login(user, pwd)
smtp.sendmail(msg['from'], msg['to'], msg.as_string())
smtp.quit()
print('邮件发送成功email has send out !') if __name__ == '__main__':
msg = email.mime.multipart.MIMEMultipart() msg['Subject'] = '系统监控告警邮件' # 邮件标题
msg['From'] = '1402122292@qq.com' # 发送方的邮箱地址
msg['To'] = 'gonglovepj@gmail.com' # 目的邮箱地址 user = '1402122292@qq.com' # 登陆的用户
pwd = 'folgrpnvvjfxjijc' # 授权码 content='%s\n%s' %('\n'.join(sys.argv[1:4]),' '.join(sys.argv[4:])) #格式处理,专门针对我们的邮件格式 txt = email.mime.text.MIMEText(content, _charset='utf-8')
msg.attach(txt) sendmail(server,port,user,pwd,msg)

最新文章

  1. oracle基本操作符/运算符/操作语言
  2. java 内存模型
  3. ios计算内容的高度 (含7.0前及以后的版本的用法)
  4. 微信公众号API返回不可打印字符的处理。
  5. (六)WebRTC手记之WebRtcVideoEngine2模块
  6. AngularJS 初识笔记
  7. JSONObject和JSONArray使用
  8. SDUT2484算术表达式的转换
  9. Delphi的指针 good
  10. java.lang.String中[ "张飞"+1+1 ] 和 [ "张飞"+(1+1) ]
  11. 5秒让你的View变3D,ThreeDLayout使用和实现
  12. Mountaineers Gym - 102021M (LCA+MST)
  13. SpringBoot整合Mybatis完整详细版二:注册、登录、拦截器配置
  14. 阿里java开发规范 强制约束
  15. 李清华201772020113《面向对象程序设计(Java)》第六周学习总结
  16. ecs主机被破解后下载的执行文件的脚本
  17. Java 执行Shell脚本指令
  18. Android 批量打包利器
  19. Jigloo 下载 安装 GUI
  20. c++ time_t

热门文章

  1. lms框架分布式事务使用简介
  2. 面试官问PHP四大主流框架的优缺点,看这篇就够了!
  3. BUAA_OO_第三单元
  4. 构建一个Flowable命令行应用
  5. Seata搭建与分布式事务入门
  6. .NET6 平台系列3 .NET CLR 详解
  7. CloudBase CMS + Next.js:轻松构建一个内容丰富的站点
  8. 06- Linux Ubuntu下sublime下载与使用与安装包
  9. C/C++ 手工实现IAT导入表注入劫持
  10. POJ2752KMP逆序处理