本文介绍一段shell脚本,它可以检测某进程或某服务是否正在运行,然后以邮件通知。有需要的朋友参考下

一个简单的shell脚本,用来找出关键的服务是否正在运行,适用于Linux操作系统或Unix操作系统。
原文出处::http://www.jbxue.com/article/11440.html

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

代码:

复制代码代码如下:

#!/bin/bash
# Name : service.chk 服务检测脚本
## 根据自己的环境修改
_pgrep="/usr/bin/pgrep"
_mail="/usr/bin/mail"

## 环境变量
_chklist="/usr/bin/php-cgi /usr/sbin/nginx /usr/sbin/lighttpd /usr/sbin/mysqld /usr/sbin/apache2 /usr/sbin/named /usr/sbin/pgsqld"

## yes | no
_sendemail="no"

## email
_email="test@jbxue.com"

## 不要修改如下配置
_failed="false"
_service="Service:"

_running() {
 local p="${1##*/}"
 local s="true"
 $_pgrep "${p}" >/dev/null || { s="false"; _failed="true"; _service="${_service} $1,"; }
 [[ "$s" == "true" ]] && echo "$1 running" || { echo -n "$1 not running"; [[ ! -f "$1" ]] && echo " [ $1 not found ]" || echo ; }
}

## header
echo "Service status on ${HOSTNAME} @ $(date)"
echo "------------------------------------------------------"

## Check if your service is running or not 
for s in $_chklist
do
 _running "$s"
done

## Send a quick email update (good for cron jobs) ##
[[ "$_failed" == "true" && "$_sendemail" == "yes" ]] && { _mess="$_service failed on $HOSTNAME @ $(date)"; 
$_mail -s 'Service not found' "$_email" < "${_mess}";

下面是一些小段代码,大家也可以参考下

脚本一:

#!/bin/sh

program=XXXX     #进程名
sn=`ps -ef | grep $program | grep -v grep |awk '{print $2}'`  #获得进程端口号
if [ "${sn}" = "" ]    #如果为空,表示进程未启动
then
nohup /home/oracle/XXXX  &    #后台启动进程
echo start ok !
else
echo running
fi 

脚本二:

#!/bin/sh
ps -ef |grep ./FileServer > /dev/null 2>&1  #检测进程写入/dev/null
if [ $? -eq 0 ]  #0为正常
then
echo logprocess run ok!
else
nohup /home/oracle/XXXX &

echo start ok !

fi

脚本三:

#!/bin/sh

count=`ps -fe |grep "a.out" | grep -v "grep" | wc -l`

if [ $count -lt 1 ]; then
/root/sh/restart.sh

脚本四:

PNAME="authd"

PATHNAME=/root/cauthd/build/
LENGTH=`ps -ef|grep "$PNAME"|grep -v grep|cut -b 49-200|wc -c `
if test $LENGTH -eq 0
then
cd $PATHNAME
nohup $PNAME >/dev/null

脚本五:

#! /bin/bash

echo "请输入进程名:" 
read process 
echo "你要查找的进程是 $process ,正在查找..." 
ps > text1 
grep "$process" text1

declare -i a=$? 
if [ $a -eq 0 ] 
then 
echo "该进程存在" 
else 
echo "该进程不存在" 
fi 
rm text1  

用于检测进程的shell脚本代码小结的更多相关文章

  1. 用于检测进程的shell脚本

    用于检测进程的shell脚本 2010-07-07 10:38:08|  分类: Centos |字号 订阅 脚本一: #!/bin/sh program=XXXX     #进程名 sn=`ps - ...

  2. 找出1小时内占用cpu最多的10个进程的shell脚本

    cpu时间是一项重要的资源,有时,我们需要跟踪某个时间内占用cpu周期最多的进程.在普通的桌面系统或膝上系统中,cpu处于高负荷状态也许不会引发什么问题.但对于需要处理大量请求的服务器来讲,cpu是极 ...

  3. 判断文件是否存在的shell脚本代码!

    实现代码一 #shell判断文件夹是否存在 #如果文件夹不存在,创建文件夹 if [ ! -d "/Top" ]; then mkdir -p /Topfi #shell判断文件, ...

  4. 利用微信企业号的告警功能,联动检测ICMP的shell脚本

    作者:邓聪聪 由于设备IP众多,为了及时发现IP地址有不可达现象,利用微信的联动报警,及时发现问题,以下是脚本内容!!! ping.sh #!/bin/bash ###SCRIPT_NAME:icmp ...

  5. zabbix中监控某个进程的shell脚本

    #!/bin/sh ret_ok= ret_warn= ret_critical= ret_unknown= info_count=`ps -aux | awk 'BEGIN {cnt=0} /[^- ...

  6. linux下一个启动和监测多个进程的shell脚本程序

    #!/bin/sh# Author:tang# Date:2017-09-01 ProcessName=webcrawlerInstanceCount=6RuntimeLog='runtime.log ...

  7. 尝试阅读理解一份linux shell脚本

    以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/p/16721350.html 从头一二去阅读语法和命令说明 ...

  8. 说说shell脚本中的export 和 source,bash

    小弟刚刚接触linux,对linux上的很多东西都比较陌生,所以写一写博客,当做自己工作的总结和技术的积累吧,也是鞭策自己不断努力的去学习. 今天之所以起这个标题,把export,source ,ba ...

  9. 可以自动安装mysql数据库的一个shell脚本

    发布:thatboy   来源:脚本学堂     [大 中 小] 分享一例shell脚本,可以实现mysql数据库的自动安装,脚本写的不错,无论是用来学习,还是生产环境中应用,都是不错的,有需要的朋友 ...

随机推荐

  1. Ant构建文件解析

    <?xml version="1.0" encoding="UTF-8"?> <!-- 在Ant脚本中,project是这个XML文档的根结点 ...

  2. Javascript:父类可以调用子类吗?

    问:父类可以调用子类吗? 答:可以,经典的模板方法模式就是用的这个特性.

  3. UIControl的子类UISwitch, UISegmentedCntrol, UIPageControl详解

    - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...

  4. 2017年USNews美国大学研究生专业排名

    2017年USNEWS美国大学研究生专业排名最佳商学院排名 排名 学校 费用 注册人数 #1 Harvard University Boston, MA $61,225 per year (full- ...

  5. MapReduce调度器

    1. 先进先出(FIFO)调度器 先进先出调度器是Hadoop的默认调度器.就像这个名字所隐含的那样,这种调度器就是用简单按照“先到先得”的算法来调度任务的.例如,作业A和作业B被先后提交.那么在执行 ...

  6. iOS:shareSDK第三方登录

    shareSDK第三方登录跟分享差不多,比较简单,前面已有介绍.这里简单写一下第三方登录吧. 1.首先:我用到了QQ.微信.新浪这三个平台的登录,需要到它们各自的开发者平台注册开发者账号,这是我的QQ ...

  7. 数学图形(2.23)Cylindric sine wave柱面正弦曲线

    柱面正弦曲线 #http://www.mathcurve.com/courbes3d/couronnetangentoidale/couronnetangentoidale.shtml vertice ...

  8. M1卡说明及使用proxmark3破解方法

    看了网上写的一些关于M1卡的文章,多数有些误导之嫌.首先谈谈M1卡的规格,M1卡的容量为1KB,好多网上写8KB,这里其实是有个误区,应该是8K位.1Byte=1B=8位.其实也就是说8k位想到于1K ...

  9. 虚机启动失败-Event 1069

    Failover cluster中的一台虚机启动失败. 报错如下: 文字信息关键字如下: Event 1069; Event 21502; 0x80004005; Cluster resource ' ...

  10. Android -- 压缩与解压文件

    我在做一个项目中,工程文件中有一个功能需要很多图片,图片与app一起打包下来的话有30+M,那么我们就考虑另外下载压缩包,我们将图片取出,工程就只有4+M了,哈哈哈哈,呵呵,真恐怖.那么这样就涉及到另 ...