Chinaunix首页 | 论坛 | 博客
  • 博客访问: 305710
  • 博文数量: 111
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 707
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-26 11:00
个人简介

小伙向前冲呀,小伙向前冲呀。

文章分类

全部博文(111)

文章存档

2014年(43)

2013年(68)

我的朋友

分类: LINUX

2013-11-29 21:12:39

发布:thebaby   来源:net     【   本文介绍一段shell脚本,它可以检测某进程或某服务是否正在运行,然后以邮件通知。有需要的朋友参考下吧。
一个简单的shell脚本,用来找出关键的服务是否正在运行,适用于Linux或Unix操作系统。
转自: (转载请注明出处)

该脚本还可以使用电子邮件发送通知。

代码:
  1. #!/bin/bash
  2. # Name : service.chk 服务检测脚本
  3. ## 根据自己的环境修改
  4. _pgrep="/usr/bin/pgrep"
  5. _mail="/usr/bin/mail"
  6.  
  7. ## 环境变量
  8. _chklist="/usr/bin/php-cgi /usr/sbin/nginx /usr/sbin/lighttpd /usr/sbin/mysqld /usr/sbin/apache2 /usr/sbin/named /usr/sbin/pgsqld"
  9.  
  10. ## yes | no
  11. _sendemail="no"
  12.  
  13. ## email
  14. _email="test@jbxue.com"
  15.  
  16. ## 不要修改如下配置
  17. _failed="false"
  18. _service="Service:"
  19.  
  20. _running() {
  21.  local p="${1##*/}"
  22.  local s="true"
  23.  $_pgrep "${p}" >/dev/null || { s="false"; _failed="true"; _service="${_service} $1,"; }
  24.  [[ "$s" == "true" ]] && echo "$1 running" || { echo -n "$1 not running"; [[ ! -f "$1" ]] && echo " [ $1 not found ]" || echo ; }
  25. }
  26.  
  27. ## header
  28. echo "Service status on ${HOSTNAME} @ $(date)"
  29. echo "------------------------------------------------------"
  30.  
  31. ## Check if your service is running or not
  32. for s in $_chklist
  33. do
  34.  _running "$s"
  35. done
  36.  
  37. ## Send a quick email update (good for cron jobs) ##
  38. [[ "$_failed" == "true" && "$_sendemail" == "yes" ]] && { _mess="$_service failed on $HOSTNAME @ $(date)";
  39. $_mail -s 'Service not found' "$_email" < "${_mess}";
  40. } /p>

结果:
16.png

您可能感兴趣的文章:







阅读(1894) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~