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特殊变量(Shell $#、$*、$@、$?、$$)的使用

    这篇文章主要介绍了Shell特殊变量(Shell $#、$*、$@、$?、$$)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 实现android自动化测试部署与运行Shell脚本分享

    实现android自动化测试部署与运行Shell脚本分享

    这篇文章主要介绍了实现android自动化测试部署与运行Shell脚本分享,本文直接给出实现代码,需要的朋友可以参考下
    2015-03-03
  • Shell中获取脚本所在目录绝对路径的方法

    Shell中获取脚本所在目录绝对路径的方法

    这篇文章主要介绍了Shell中获取脚本所在目录绝对路径的方法,本文直接给出实现代码,需要的朋友可以参考下
    2015-01-01
  • Shell脚本调试 -n -v -x -c的具体用法

    Shell脚本调试 -n -v -x -c的具体用法

    本文主要介绍了Shell脚本调试 -n -v -x -c的具体用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Shell中的函数、函数定义、作用域问题介绍

    Shell中的函数、函数定义、作用域问题介绍

    这篇文章主要介绍了Shell中的函数、函数定义、作用域问题介绍,本文讲解了Shell中函数的定义、自定义函数的例子、作用域问题等内容,需要的朋友可以参考下
    2014-11-11
  • 5个Shell脚本编程入门练习例子

    5个Shell脚本编程入门练习例子

    这篇文章主要介绍了5个Shell脚本编程入门例子,涵盖了各种操作,又有一些游戏的性质,作为入门练习例子是不很不错的,需要的朋友可以参考下
    2014-06-06
  • Linux下NC反弹shell命令(推荐)

    Linux下NC反弹shell命令(推荐)

    这篇文章主要介绍了Linux下NC反弹shell命令,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-07-07
  • shell按行读取文件的3种方法

    shell按行读取文件的3种方法

    这篇文章主要介绍了shell按行读取文件的3种方法,需要的朋友可以参考下
    2014-04-04
  • Vim中列出TODO与FIXME等备注的方法

    Vim中列出TODO与FIXME等备注的方法

    很多代码编辑器,在注释里写上 XXX TODO FIXME NOTE 关键字的话,这几个关键字是会被高亮显示的。但很多人不知道,下面这篇文章主要介绍了Vim中列出TODO与FIXME等备注的方法,文中通过示例代码介绍的非常详细,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-06-06
  • shell脚本批量复制及执行命令的示例详解

    shell脚本批量复制及执行命令的示例详解

    这篇文章主要介绍了批量复制及执行命令shell脚本,本文通过列举几个示例给大家详细介绍,对大家的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03

最新评论