首先写一个邮件提醒python文件

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. import sys
  4. import smtplib
  5. import email.mime.multipart
  6. import email.mime.text
  7.  
  8. server = 'smtp.163.com'
  9. port = ''
  10.  
  11. def sendmail(server,port,user,pwd,msg):
  12. smtp = smtplib.SMTP()
  13. smtp.connect(server,port)
  14. smtp.login(user, pwd)
  15. smtp.sendmail(msg['from'], msg['to'], msg.as_string())
  16. smtp.quit()
  17. print('邮件发送成功email has send out !')
  18.  
  19. if __name__ == '__main__':
  20. msg = email.mime.multipart.MIMEMultipart()
  21. msg['Subject'] = '服务器报警请注意!'
  22. msg['From'] = 'python4_mail@163.com'
  23. msg['To'] = 'longbaby1101@qq.com'
  24. user = 'python4_mail'
  25. pwd = 'sbalex3714'
  26. content='%s\n%s' %('\n'.join(sys.argv[1:4]),' '.join(sys.argv[4:])) #格式处理,专门针对我们的邮件格式
  27.  
  28. txt = email.mime.text.MIMEText(content, _charset='utf-8')
  29. msg.attach(txt)
  30.  
  31. sendmail(server,port,user,pwd,msg)

然后写自己的监控脚本

  1. #/bin/bash
  2. bu=`free | awk 'NR==2{print $6}'`
  3. to=`free | awk 'NR==2{print $2}'`
  4. mem=`expr "scale=2;$bu/$to" |bc -l | cut -d. -f2`
  5. if(($mem >= ))
  6. then
  7. msg="TIME:$(date +%F_%T)
  8. HOSTNAME:$(hostname)
  9. IPADDR:$(ifconfig |awk 'NR==2{print $2}')
  10. MSG:内存high了high了!已经用了${mem}%"
  11. echo $msg
  12. /usr/bin/pymail.py $msg
  13. fi
  14. systemctl status nginx
  15. if(($?!=))
  16. then
  17. msg="TIME:$(date +%F_%T)
  18. HOSTNAME:$(hostname)
  19. IPADDR:$(ifconfig |awk 'NR==2{print $2}')
  20. MSG: Nginx 进程出现异常请注意查看!"
  21. echo $msg
  22. /usr/bin/pymail.py $msg
  23. fi
  24. systemctl status nfs
  25. if(($?!=))
  26. then
  27. msg="TIME:$(date +%F_%T)
  28. HOSTNAME:$(hostname)
  29. IPADDR:$(ifconfig |awk 'NR==2{print $2}')
  30. MSG: NFS 进程出现异常请注意查看!"
  31. echo $msg
  32. /usr/bin/pymail.py $msg
  33. fi

之后再定时任务中写入每分钟执行一次

把两个nginx 和 nfs 服务关闭

等待一分钟之后

shell脚本-监控及邮件提醒的更多相关文章

  1. Linux简单Shell脚本监控MySQL、Apache Web和磁盘空间

    Linux简单Shell脚本监控MySQL.Apache Web和磁盘空间 1. 目的或任务 当MySQL数据库.Apache Web服务器停止运行时,重新启动运行,并发送邮件通知: 当服务器磁盘的空 ...

  2. 用shell脚本监控进程是否存在 不存在则启动的实例

    用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货: #!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ]th ...

  3. shell脚本监控网站状态

    shell脚本监控网站状态 #!/bin/sh date=`date +"%Y%m%d-%H%M"` title="status" contentFail=&q ...

  4. shell脚本监控Linux系统性能指标

    2016-11-04 22:41 原作者不详 分类: Linux(7) 在服务器运维过程中,经常需要对服务器的各种资源进行监控, 例如:CPU的负载监控,磁盘的使用率监控,进程数目监控等等,以在系统出 ...

  5. linux shell脚本监控进程是否存在

    用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货:    #!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ...

  6. 用shell脚本监控MySQL主从同步

    企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:阶段1:开发一个守护进程脚本每30秒 ...

  7. shell脚本监控MySQL服务是否正常

    监控MySQL服务是否正常,通常的思路为:检查3306端口是否启动,ps查看mysqld进程是否启动,命令行登录mysql执行语句返回结果,php或jsp程序检测(需要开发人员开发程序)等等: 方法1 ...

  8. Linux/Unix shell 脚本监控磁盘可用空间

    Linux下监控磁盘的空闲空间的shell脚本,对于系统管理员或DBA来说,必不可少.下面是给出的一个监控磁盘空间空间shell脚本的样本,供大家参考. 1.监控磁盘的空闲空间shell脚本 robi ...

  9. shell脚本监控系统负载、CPU和内存使用情况

    hostname >>/home/vmuser/xunjian/xj.logdf -lh >>/home/vmuser/xunjian/xj.logtop -b -n 1 | ...

随机推荐

  1. docker weave安装

    1.升级内核到3.10.0以上,安装iproute22.安装 0.80版本:#wget -O /usr/local/bin/weave https://raw.githubusercontent.co ...

  2. Html5 web 本地存储 (localStorage、sessionStorage)

    HTML5 提供了两种在客户端存储数据的新方法localStorage,sessionStorage sessionStorage(临时存储) :为每一个数据源维持一个存储区域,在浏览器打开期间存在, ...

  3. BZOJ3277 串(后缀数组+二分答案+主席树)

    因为不会SAM,考虑SA.将所有串连起来并加分隔符,每次考虑计算以某个位置开始的子串有多少个合法. 对此首先二分答案,找到名次数组上的一个区间,那么只需要统计有多少个所给串在该区间内出现就可以了.这是 ...

  4. ML科普向

    转载自http://www.cnblogs.com/qscqesze/ Basis(基础): MSE(Mean Square Error 均方误差),LMS(LeastMean Square 最小均方 ...

  5. [BZOJ3065]带插入区间K小值 解题报告 替罪羊树+值域线段树

    刚了一天的题终于切掉了,数据结构题的代码真**难调,这是我做过的第一道树套树题,做完后感觉对树套树都有阴影了......下面写一下做题记录. Portal Gun:[BZOJ3065]带插入区间k小值 ...

  6. 调用Android系统设置项

    Intent mIntent = new Intent(); ComponentName comp = new ComponentName("com.android.settings&quo ...

  7. 2017 3 8 练习赛 t3 路径规划

    题目大意是让你在一棵树上找到一条路径使得(路径边权和*路径最小值) 最大. 这道题有两种方法. 1.点分治,考虑过重心的每条路径是否可能成为答案,枚举从根出发的每一条路径中的最小值等于总路径的最小值, ...

  8. 【arc073D】Many Moves

    Portal -->arc073D Description ​ 有\(n\)个格子,编号从左到右为\(1\sim n\),一开始有两个棋子,位置给定,接下来要依次进行\(Q\)次操作,第\(i\ ...

  9. SystemV-IPC

    这里记录的三种SystemV-IPC包括(消息队列,信号量以及共享内存) 1:标识符和键值 键值(key_t) : IPC结构的外部名(所谓外部名就是各用户进程可获得并操作的,通过它使用XXXget获 ...

  10. poj 2396 Budget

    一个m行n列的矩阵,给出每行每列中元素的和,以及对一些格子的大小限制,求一个可行方案,输出矩阵. 大小限制形如:严格大于i,严格小于i,等于i. 1<=m<=200.1<=n< ...