通过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_test8560test_not_foundtest_not_found
2. 撰写脚本 demo.sh
#!/bin/bash -v# 获取默认的参数值echo \'输入的文件参数为:\' $1file_name=\"$1\"if [ -z \"${file_name}\" ];thenfile_name=\"$0\"file_name=\"${file_name%*.sh}.txt\"fiecho \"实际的文件参数为:${file_name}\"# 检测进程是否存在# 如果有存在就显示OK, 不存在就显示NGfunction check_info(){processString=\"$1\"echo \"$(date \'+%Y-%m-%d %H:%M:%S\') 检测的字符串:$processString 开始 ------------------------------------------------------------------ \"ps -fe | grep \"$processString\" | grep -v grepif [ $? -eq 0 ]; thenecho -e \"$(date \'+%Y-%m-%d %H:%M:%S\') 检测的字符串:${processString} \\033[42;34m 结果:OK \\033[0m\"elseecho -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 \'\'}# exitecho \'开始执行\' > \"${file_name}.error.log\"cat \"${file_name}\" | while read linedoif [ -n \"$line\" ];thenecho $linecheck_info $linefidone
3. 启动
sh -v ./demo.sh demo.txtsh -v ./demo.sh 2>&1 | tee demo.log
tee命令
tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
到此这篇关于Shell 批量进程判断是否存在的文章就介绍到这了,更多相关Shell 批量进程判断内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- Shell脚本判断Apache进程是否存在
- Shell实现判断进程是否存在并重新启动脚本分享
- Linux Shell中判断进程是否存在的代码