本文介绍一段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. 制作Java安装程序

    这个工具利用 ANT 来制作在 Windows, MacOS X, Unix 平台上可执行的文件,比如 exe,zip,jar.ROXES ANT Tasks 基于 GPL 发布. http://ww ...

  2. nolock的使用

    在SQL Server 2005数据库查询时,为了提高查询的性能,我们往往会在表后面加一个nolock,或者是with(nolock),让数据库在查询时不锁定表,从而提高查询的速度.本文我们就介绍SQ ...

  3. 世界围棋人机大战、顶峰对决第一盘:围棋世界冠军Lee Sedol(李世石,围棋职业九段)对战Google DeepMind AlphaGo围棋程序

    Match 1 - Google DeepMind Challenge Match: Lee Sedol vs AlphaGo 很多网站对世界围棋大战进行了现场直播,比如YouTube.新浪.乐视.腾 ...

  4. Create XML Files Out Of SQL Server With SSIS And FOR XML Syntax

    So you want to spit out some XML from SQL Server into a file, how can you do that? There are a coupl ...

  5. 一招搞定多Offer选择

    12月9号在论坛看到一位毕业生问了一个问题: 如今两个offer 一个在南京,搞.net ,公司是国电南自.税前一年加起来几乎相同7.2万.一个是在上海.搞java,公司名叫鑫合汇(不知道各位有没实用 ...

  6. 那些年困扰我们的Linux 的蠕虫、病毒和木马

    虽然针对Linux的恶意软件并不像针对Windows乃至OS X那样普遍,但是近些年来,Linux面临的安全威胁却变得越来越多.越来越严重.个中原因包括,手机爆炸性的普及意味着基于Linux的安卓成为 ...

  7. MatLab2012b/MatLab2013b 分类器大全(svm,knn,随机森林等)

    train_data是训练特征数据, train_label是分类标签.Predict_label是预测的标签.MatLab训练数据, 得到语义标签向量 Scores(概率输出). 1.逻辑回归(多项 ...

  8. k-means聚类算法C++实现

    原文:http://www.cnblogs.com/luxiaoxun/archive/2013/05/09/3069594.html Clustering 中文翻译作“聚类”,简单地说就是把相似的东 ...

  9. Token_使用JWT生成token

    1.token三部分 header   { "typ": "JWT", "alg": "HS256"   } paylo ...

  10. C#应用视频教程3.1 USB工业相机测试

    图像处理是工控很有价值的一个领域,比如人脸识别,车牌识别,还有产品的位置识别,瑕疵检测,对于个人学习来说,我们无法直接上手几万块的成熟工业相机(高端的康耐视要6万左右,而且是黑白的,要测试一些带颜色的 ...