Shell 批量进程判断是否存在
短信预约 -IT技能 免费直播动态提醒
通过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_noBzyAoqmJBQt_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 批量进程判断内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341