使用shell+python脚本实现系统监控并发送邮件
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)
使用shell+python脚本实现系统监控并发送邮件的更多相关文章
- python进行linux系统监控
python进行linux系统监控 Linux系统下: 静态指标信息: 名称 描述 单位 所在文件 mem_total 内存总容量 KB /proc/meminfo disks 磁盘相关信息 - ...
- python对 windows系统监控插件
在python编程的windows系统监控中,需要监控监控硬件信息需要两个模块:WMI 和 pypiwin32 .
- shell脚本实例-系统监控
shell脚本监控网站并实现邮件.短信报警shell进程监控脚本(发送邮件报警)Shell脚本监控服务器在线状态和邮件报警的方法 http://www.jbxue.com/jb/shell/ 11. ...
- 使用python脚本+zabbix前端监控云联网底层TCP数据流所负载的链路质量,并在丢包时联动保存MTR记录
背景 目前国内各家云联网跨区域数据传输,会将数据流通过哈希运算负载到不同的底层链路上,而底层链路质量差异较大,这种情况导致的现象就是,使用传统的icmp监控线路正常,但是业务一直不稳定,所以才有了使用 ...
- Python脚本日志系统
Python通过logging模块提供日志功能,关于logging模块的使用网络上已经有很多详细的资料,这里要分享的是怎样在实际工程中使用日志功能. 假设要开发一个自动化脚本工具,工程结构如下,Com ...
- 【原】Gradle调用shell脚本和python脚本并传参
最近由于项目自动化构建的需要,研究了下gradle调用脚本并传参的用法,在此作个总结. Pre build.gradle中定义了$jenkinsJobName $jenkinsBuild两个Jenki ...
- 计算python脚本的运行时间
首先说一下我遇到的坑,生产上遇到的问题,我调度Python脚本执行并监控这个进程,python脚本运行时间远远大于python脚本中自己统计的程序执行时间. 监控python脚本执行的时间是36个小时 ...
- Linux 服务器系统监控脚本 Shell【转】
转自: Linux 服务器系统监控脚本 Shell - 今日头条(www.toutiao.com)http://www.toutiao.com/i6373134402163048961/ 本程序在Ce ...
- Shell 脚本实现 Linux 系统监控
一.实验介绍 1.1 实验内容 本课程实现 shell 脚本监控系统的各项参数,并可以将脚本加入系统环境中,可以直接在终端里执行.还添加了几个参数,一个脚本可以执行不同的操作. 1.2 知识点 本实验 ...
随机推荐
- .NET Request对象介绍
Request对象用于检索从浏览器向服务器所发送的请求信息.它提供对当前页请求的访问,包括标题,Cookie,客户端证书等等.它也与HTTP协议的请求消息对应 Request常用的属性 属性 具体内容 ...
- 鹏城杯_2018_treasure
鹏城杯_2018_treasure 首先检查一下保护: IDA分析 我们先来看看settreasure()函数 申请了两个内存空间,并往sea中复制了shellcode 看看这个shellcode,不 ...
- DPAPI机制学习
0x00 前言 绝大多数应用程序都有数据加密保护的需求,存储和保护私密信息最安全的方式就是每次需要加密或解密时都从用户那里得到密码,使用后再丢弃.这种方式每次处理信息时都需要用户输入口令,对于绝大多 ...
- Windows新建选项排序
运行输入:regedit 然后找到:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\P ...
- MD5算法C/C++的实现
博客链接:http://blog.csdn.net/qq1084283172/article/details/52334027 在逆向程序的时候,经常会碰到加密的算法的问题,前面分析UC的逆向工程师的 ...
- POJ2308连连看dfs+bfs+优化
DFS+BFS+MAP+剪枝 题意: 就是给你一个10*10的连连看状态,然后问你最后能不能全部消没? 思路: 首先要明确这是一个搜索题目,还有就是关键的一点就是连连看这个游戏是 ...
- 用户模式下的线程同步的分析(Windows核心编程)
线程同步 同一进程或者同一线程可以生成许多不同的子线程来完成规定的任务,但是多个线程同时运行的情况下可能需要对某个资源进行读写访问,比如以下这个情况:创建两个线程对同一资源进行访问,最后打印出这个资源 ...
- Day003 数据类型
数据类型 强类型语言 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用(java.c++.c#) 弱类型语言 与强类型语言定义相反(javaScript) Java的数据类型 基本 ...
- 【opencv】Java实现opencv 调用本地摄像头,实现人脸识别、人形识别、人眼识别
本博客为老魏原创,如需转载请留言咨询. 效果预览:(没办法,为了效果只能上像了,丑别介意.哈哈..) 上代码: 1 package com.lw.test; 2 3 import java.awt.G ...
- ppt技巧--字体变化
常见字体搭配 Nordri Tools