CentOS下自动发邮件检测某进程是否存在

  

  目的:利用shell脚本每小时检测数据库是否在运行,当检测到库宕掉时发邮件告警。

  1 .检查sendmail是否在运行

  服务sendmail状态

  没有在运行则启动或安装。

  如果是linux,则检查后缀是否在运行service 后缀地位

  ,

  2. pmon是甲骨文五大关键进程之一,如果pmon进程不存在则库一定是关闭了,下面就用脚本检测pmon是否存在。

  脚本/根/check.sh如下:

  # !/bin/bash
  源. bash_profile
  我=' p ef | grep pmon | grep - v grep | wc - l '
  如果[$ lt 1]
  然后
  文本='数据库故障,pmon进程不存在的
  回声“文本”美元|邮件- s“192.168.1.100报警”第一个邮箱地址,第二个邮箱地址
  fi

  可以同时给多人发邮件,邮箱之间用英文逗号隔开。推荐使用邮139箱,这样告警就自动发到手机上了。以上脚本中本来要写两个邮箱地址的,但本文档保存后,邮箱地址就自动给删除了只另外,脚本中信息尽量用英文,因为有些邮箱显示中文时有乱码。

  ,

  3 .利用crontab每小时执行一次脚本

  crontab - e

  0 * * * */root/check.sh

  ,

  ,

  ,

  附其他检测脚本:

  用平检测主机是否宕机

  # !/bin/bash
  源. bash_profile
  萍=' ping - c 3 192.168.100.5 | awk的NR==7{打印4美元}“
  如果[$萍eq 0]
  然后
  回声“网络超时”
  其他
  回声“网络是可以的”
  fi

  ,

  #检测cpu利用率

  最高- b - n 1 | grep Cpu | awk的{打印$ 2}|切- f 1 - d“%”

  ,

  #检测cpu空闲率

  最高- b - n 1 | grep Cpu | awk - f,“{打印4美元}”|切- f 1 - d“%”

  ,

  检测负载

  正常运行时间| awk的{打印10美元}|削减1 - f - d”、“

  ,

  #检测硬盘空间使用率

  df th | sed的1、2 d ' | sed的2,4 d | awk的{打印5美元}|削减1 - f - d“%”


CentOS下自动发邮件检测某进程是否存在