发送邮箱小工具,将它放在#/usr/bin/mail  chmod +x /usr/bin/mail

#!/usr/bin/python

#-*- coding: UTF-8 -*-

import sys

import smtplib

import email.mime.multipart

import email.mime.text

server = 'smtp.163.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'] = 'python4_mail@163.com'

msg['To'] = 'python4_recvmail@163.com'

user = 'python4_mail'

pwd = 'sbalex3714'

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)

监控脚本

#!/bin/bash

#/author/dengsiyuan

cpu_limit=0    #定义cpu报警线

memory_limit=0 #定义内存报警线

disk='/dev/sda1' # 定义要监控的磁盘

disk_inode_limit=0 #定义磁盘inode报警线

disk_space_limit=0 #定义磁盘使用空间报警线

function bc_install()   #查看是否安装了bc软件包

{

rpm -qa |grep '^bc.*$' >> /dev/null

if [ $? -eq 0 ];then

echo 'bc has been installed'

else

yum install bc -y

fi

}

function nettools_install()  #查看是否安装了nettools 软件包

{

rpm -qa |grep net-tools >> /dev/null

if [ $? -eq 0 ];then

echo 'nettools has been installed'

else

yum install net-tools -y

Fi

}

function monitor_cpu()

{

cpu_id_free= `vmstat 1 5 |awk 'NR>=3{ x = x + $15 } END {print x/5}'|awk -F. '{print $1}'`

#提取CPU空余空间

cpu_used= $((100-cpu_id_free))    #提取CPU使用空间

if [ $cpu_used -gt $cpu_limit ]then;  #与cpu使用率报警线比较

msg="TIME:$(date +%F_%T)

HOSTNAME:$(hostname)

IPADDR:$(ifconfig |awk 'NR==2{print $2}')

MSG:cpu usage exceeds the limit ,current value is ${cpu_used}%"

echo $msg

/usr/bin/mail $msg

fi

}

function monitor_mem()

{

mem_total=`free |awk 'NR==2{print $2}'`     #提取内存总量

mem_used=`free |awk 'NR==2{print $3}'`     #提取内存使用

mem_percent=`echo "scale=2;$mem_used/$mem_total" |bc -l |cut -d. -f2`  #计算内存使用率

if [ $mem_percent -gt $mem_limit ];then  #与内存使用率报警线比较

msg="TIME:$(date +%F_%T)

HOSTNAME:$(hostname)

--             IPADDR:$(ifconfig |awk 'NR==2{print $2}')

MSG:mem usage exceeds the limit,current value is ${mem_percent}%"

echo $msg

/usr/bin/mail $msg  # 调用邮件

fi

}

function monitor_disk_inode()

{

disk_inode_used=`df -i $disk |awk 'NR==2{print $5}'|cut -d% -f1`  #提取磁盘Inode使用情况

if [ $disk_inode_used -gt $disk_inode_limit ];then  #比较

msg="TIME:$(date +%F_%T)

HOSTNAME:$(hostname)

IPADDR:$(ifconfig |awk 'NR==2{print $2}')

MSG:disk_inode usage exceeds the limit,current vaule is ${disk_inode_used}%"

echo $msg

/usr/bin/mail $msg

fi

}

function monitor_disk_space()

{

disk_space_used=`df $disk |awk 'NR==2{print $5}'|cut -d% -f1`   #提取磁盘使用情况

if [ $disk_space_used -gt $disk_space_limit ];then  #比较

msg="TIME:$(date +%F_%T)

HOSTNAME:$(hostname)

--PADDR:$(ifconfig |awk 'NR==2{print $2}')

MSG:disk_space_used usage exceeds the limit,current vaule is ${disk_space_used}%"

echo $msg

/usr/bin/mail $msg

fi

}

bc_install

nettools_install

monitor_cpu &>> /tmp/monitor.log

monitor_mem &>> /tmp/monitor.log

monitor_disk_inode &>> /tmp/monitor.log

monitor_disk_space &>> /tmp/monitor.log

转载于:https://www.cnblogs.com/njzy-yuan/p/6813722.html

十六.监控系统cpu.内存,磁盘等,自动报警,发送邮件相关推荐

  1. linux系统CPU,内存,磁盘,网络流量监控脚本

    前序 1, #cat /proc/stat/  信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2, #vmstat –s   或者 #vmstat    虚拟内存统 ...

  2. java 监控系统cpu,java系统监控CPU 磁盘

    java系统监控CPU 磁盘 import java.io.*; /** * linux 下cpu 内存 磁盘 jvm的使用监控 * @author avery_leo * */ public cla ...

  3. UWP开发入门(十六)——常见的内存泄漏的原因

    原文:UWP开发入门(十六)--常见的内存泄漏的原因 本篇借鉴了同事翔哥的劳动成果,在巨人的肩膀上把稿子又念了一遍. 内存泄漏的概念我这里就不说了,之前<UWP开发入门(十三)--用Diagno ...

  4. Linux系统监控命令整理汇总-掌握CPU,内存,磁盘IO等找出性能瓶颈

    的性能有问题,总之,每到晚上挖站否的主机就出现了不稳定的情况,系统负载忽高忽低.利用服务器日志分析利器:ngxtop和GoAccess也能查出有一些IP一直在不断地扫描服务器端口还有WP后台. 但是, ...

  5. MetricBeat(win/linux)部署 系统CPU内存等资源情况监控

    目录 1.下载 2.linux系统监控 ​3.启用模块 4.windows系统监控 1.下载 下载MetricBeat的linux和windows版本 https://artifacts.elasti ...

  6. AIX和LINUX主机 CPU 内存 磁盘使用率监控

    AIX监控 磁盘使用率监控 df -g|grep -v Filesystem|grep -v proc|awk ' gsub(/%/,"",$4) {print $7 " ...

  7. 脚本监控windows的cpu 内存 磁盘 使用率

    监控cpu使用率的vbs脚本, cpu.vbs(注意cpu0代表第一个cpu) On Error Resume Next Set objProc = GetObject("winmgmts: ...

  8. Ubuntu下系统CPU/内存/GPU/硬盘监控查看指令

    1.实时监控CPU及内存的 Htop监控 #安装 sudo apt-get install htop #启动htop htop Ubuntu默认监控器 Win+A打开所有APP,搜索System Mo ...

  9. linux监控cpu内存磁盘网络使用率,linux服务器性能——CPU、内存、流量、磁盘使用率的监控...

    4. 什么是AJAX 术语Ajax用来描述一组技术,它使浏览器可以为用户提供更为自然的浏览体验.在Ajax之前,Web站点强制用户进入提交/等待/重新显示范例,用户的动作总是与服务器的"思考 ...

最新文章

  1. 【408】C函数中的ADT
  2. 自定义控件之onMeasure
  3. Codeforces Round #433(Div. 2) D. Jury Meeting(贪心)
  4. FreeEIM通讯软件无论是画面风格还是游戏内容
  5. brctl 设置ip_Linux 网桥配置命令:brctl
  6. ABTest灰度发布
  7. win10装sql2000卡在选择配置_小编为你作答win10系统安装SQL2000卡在MADC不动
  8. 以用户为师,报喜鸟用需求助力云备份产品创新
  9. 如何删除.sys的流氓文件
  10. 计算机总是蓝屏怎么解决办法,电脑经常蓝屏怎么办?教你解决几种常见的蓝屏问题...
  11. EXCEL函数LookUp, VLOOKUP,HLOOKUP应用详解(含中文参数解释)
  12. elasticsearch 基础 —— Jion父子关系
  13. 算法探讨——再议经典算法问题:求最大子序列和、绝对值最大子序列和以及其区间...
  14. int / int(double); java保留小数
  15. 【知识建设】信息熵、条件熵、互信息、交叉熵及相对熵(KL散度)
  16. Echelon/艾美捷——脂质与蛋白质相互作用的研究
  17. 51单片机学习笔记之数码管工作原理
  18. AS问题解决 Not recognizing known sRGB profile
  19. keyston api与代码router映射
  20. js省市县三级联动效果实例

热门文章

  1. 基于Golang的CLI 命令行程序开发
  2. 2022-2028年中国硅藻土产业发展态势及市场发展策略报告
  3. perl: warning: Setting locale failed. Falling back to a fallback locale (“en_HK.UTF-8“).
  4. OpenCV 笔记(02)— 图像显示、保存、腐蚀、模糊、canny 边缘检测(imread、imshow、namedWindow、imwrite)
  5. windows阿里云服务器配置
  6. 【K8S实践】关于Kubernetes Dashboard的实践学习
  7. java.lang.NullPointerException异常原因及解决
  8. 客快物流大数据项目(四十六):Spark操作Kudu dataFrame操作kudu
  9. 黑客基础知识与防护(一)
  10. Ubuntu su 认证失败