Shell 批量进程判断是否存在

 更新时间:2021年09月26日 09:08:01   作者:duduodudu  
本文主要介绍了Shell 批量进程判断是否存在,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

通过ps -ef | grep tomcat判断进程是否存在

1. 把需要点检的tomcat路径放到一个txt中,一行写一个tomcat,名字为demo.txt

/home/app/tomcat_8555_pis
/home/app/tomcat_test8556
/home/app/tomcat_test8557
/home/app/tomcat_test8558
/home/app/tomcat_test8559
/home/app/tomcat_test8560
test_not_found
test_not_found

2. 撰写脚本 demo.sh

#!/bin/bash -v

# 获取默认的参数值
echo '输入的文件参数为:' $1
file_name="$1"
if [ -z "${file_name}" ];then
        file_name="$0"
        file_name="${file_name%*.sh}.txt"
fi
echo "实际的文件参数为:${file_name}"

# 检测进程是否存在
# 如果有存在就显示OK, 不存在就显示NG
function check_info(){
        processString="$1"
        echo "$(date '+%Y-%m-%d %H:%M:%S') 检测的字符串:$processString 开始 ------------------------------------------------------------------ "

        ps -fe | grep "$processString" | grep -v grep
        if [  $? -eq 0 ]; then
                echo -e "$(date '+%Y-%m-%d %H:%M:%S') 检测的字符串:${processString} \033[42;34m 结果:OK \033[0m" 
        else
                echo -e "$(date '+%Y-%m-%d %H:%M:%S') 检测的字符串:${processString} \033[41;30m 结果:NG \033[0m"
                echo $processString >> "${file_name}.error.log"
        fi
        # 打印明细
        echo "$(date '+%Y-%m-%d %H:%M:%S') 进程明细如下:----------------"
        ps -fe | grep "$processString" 
        ps -fe | grep "$processString" > "${file_name%.sh}.error.log"
        echo "$(date '+%Y-%m-%d %H:%M:%S') 进程明细结束:----------------"
        echo "$(date '+%Y-%m-%d %H:%M:%S') 检测的字符串:$processString 结束 ------------------------------------------------------------------ "
        echo ''
        echo ''
}

# exit 
echo '开始执行' > "${file_name}.error.log"
cat "${file_name}" | while read line 
do
        if [ -n "$line" ];then
                echo $line
                check_info $line
        fi
done

3. 启动

sh -v ./demo.sh demo.txt
sh -v ./demo.sh 2>&1 | tee demo.log

tee命令
tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。


到此这篇关于Shell 批量进程判断是否存在的文章就介绍到这了,更多相关Shell 批量进程判断内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Shell脚本查看网卡实时流量

    Shell脚本查看网卡实时流量

    这篇文章主要介绍了Shell脚本查看网卡实时流量,本文直接给出实现代码,需要的朋友可以参考下
    2014-12-12
  • shell性能测试脚本优化的技巧

    shell性能测试脚本优化的技巧

    这篇文章主要介绍了shell性能测试脚本优化技巧,本文通过实例截图的形式给大家展示,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Linux crontab定时执行Shell脚本需要执行特定的命令时解决思路

    Linux crontab定时执行Shell脚本需要执行特定的命令时解决思路

    今天小编就为大家分享一篇关于Linux crontab定时执行Shell脚本需要执行特定的命令时解决思路,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • 三分钟学会Linux基本指令

    三分钟学会Linux基本指令

    本文小马将把Linux一般比较常见的指令给大家一一列举出来,为了大家忘记某些指令后,可以方便查询记忆,再次小马建议,Linux指令并不需要去特别花时间专门记忆,只需要多进行操作实现就行,这篇文章主要介绍了Linux基本指令,需要的朋友可以参考下
    2022-12-12
  • Shell脚本制作的终端会话回放功能脚本分享

    Shell脚本制作的终端会话回放功能脚本分享

    这篇文章主要介绍了Shell脚本制作的终端会话回放功能脚本分享,本文分两个文件,Record.sh是用来记录你所执行的命令和屏幕的输出的,而Replay.sh是用来回放Record.sh所录制的内容的,需要的朋友可以参考下
    2014-11-11
  • 数值运算shell脚本

    数值运算shell脚本

    这次的shell案例比较简单,但有其特点,脚本整体简洁明了,但功能强大,可以实现带自定义数值运算
    2016-08-08
  • Linux 命令每天必学(34)之du命令

    Linux 命令每天必学(34)之du命令

    Linux du命令是查看使用空间的,本文给大家介绍linux du命令的参数,格式,功能等相关资料,对linux du命令感兴趣的朋友一起学习吧
    2015-11-11
  • git多账号登录问题解析

    git多账号登录问题解析

    这篇文章主要介绍了git多账号登录问题解析及git多个账户冲突问题的解决办法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • linux 中ls命令详解

    linux 中ls命令详解

    ls命令是linux下最常用的命令。ls命令就是list的缩写。下面通过本文给大家分享linux 中ls命令详解,感兴趣的朋友一起看看吧
    2017-09-09
  • shell中各种括号的作用详解()、(())、[]、[[]]、{}(推荐)

    shell中各种括号的作用详解()、(())、[]、[[]]、{}(推荐)

    本文给大家收藏整理了shell中各种括号的作用,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-09-09

最新评论