检查进程启动情况,开始时间、启动时间、启动进程数、进程数是否正确、PID
#!/bin/sh
bin=$(cd `dirname $`;pwd)
cd ${bin} ### 定义检查函数
chk(){
programName=$
correctNum=$
programSubName=$ # 判断是否带子程序名
if [ -n "${programSubName}" ]
then
programNum=$(ps -ef|grep -Ewv "grep|less|more|zgrep|zless|vi|vim|gzip"|grep ${programName}|grep -w ${programSubName}|wc -l)
info=($(ps -eo pid,lstart,etime,cmd |grep -Ewv "grep|less|more|zgrep|zless|vi|vim|gzip"|grep ${programName}|grep -w ${programSubName}|awk '{print $1" "$3" "$4" "$5" "$6" "$7}'|tail -))
program="${programName}|${programSubName}"
else
programNum=$(ps -ef|grep -Ewv "grep|less|more|zgrep|zless|vi|vim|gzip"|grep ${programName}|wc -l)
info=($(ps -eo pid,lstart,etime,cmd |grep -Ewv "grep|less|more|zgrep|zless|vi|vim|gzip"|grep ${programName}|awk '{print $1" "$3" "$4" "$5" "$6" "$7}'|tail -))
program=${programName}
fi # 解析进程信息
pid=${info[]}
startTime=$(date -d "${info[1]} ${info[2]} ${info[3]} ${info[4]}" "+%Y-%m-%d %H:%M:%S")
elapsedTime=${info[]} # 判断进程数是否一致
if [ ${programNum} -eq ${correctNum} ]
then
printf "${format_str}" "${program}" "ok" "${startTime}" "${elapsedTime}" "${programNum}" "${correctNum}" "${pid}"
else
printf "${format_str}" "${program}" "ERROR" "${startTime}" "${elapsedTime}" "${programNum}" "${correctNum}" "${pid}"
fi
} ### 打印表头
format_str="%-33s %7s %20s %14s %12s %12s %10s\n"
printf "\n${format_str}" "ProgramName" "Status" "StartTime" "RunningTime" "ProgramNum" "CorrectNum" "PID" ### 检查Client进程
for i in `cat canalInstance`
do
chk "CanalClient" ${i}
done ### 检查Server进程
chk "AAAAAAAAAAAAAAAAAAA" aaaaaaaa_00
chk "BBBBBBBBBBBBBBBBBBB" bbbbbbbb_01 echo ProgramName Status StartTime RunningTime ProgramNum CorrectNum PID
CanalClient|eeeeeeeeeeeeee ok -- :: -::
CanalClient|ddddddd ok -- :: -::
CanalClient|cccccc ok -- :: -::
CanalClient|ffffffff ok -- :: -::
CanalClient|hhhhhhhh ok -- :: -::
CanalClient|iiiiiiii ok -- :: -::
CanalClient|jjjjjjj ok -- :: -::
CanalClient|kkkkkkk ok -- :: -::
CanalClient|lllllll ok -- :: -::
CanalClient|mmmmmmm ok -- :: -::
CanalClient|lllllll ok -- :: -::
CanalClient|ooooooo ok -- :: -::
CanalClient|aaaaa ok -- :: -::
CanalClient|bbbb ok -- :: -::
AAAAAAAAAAAAAAAAAAA|aaaaaaaa_00 ok -- :: ::
BBBBBBBBBBBBBBBBBBB|bbbbbbbb_01 ok -- :: -::
检查进程启动情况,开始时间、启动时间、启动进程数、进程数是否正确、PID的更多相关文章
- linux下启动、停止tomcat,杀死tomcat进程
1.打开终端 cd /java/tomcat 2.执行 bin/startup.sh #启动tomcat bin/shutdown.sh #停止tomcat tail -f logs/catalina ...
- MySQL 服务正在启动 .MySQL 服务无法启动。系统出错。发生系统错误 1067。进程意外终止。
MySQL 服务正在启动 .MySQL 服务无法启动.系统出错.发生系统错误 1067.进程意外终止. 检查了一个晚上才发现是---配置问题 #Path to installation directo ...
- 查看LINUX进程内存占用情况及启动时间
可以直接使用top命令后,查看%MEM的内容.可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令: (1) top top命令是Linux下常用的性能分 ...
- 启动hadoop,没有启动namenode进程。log4j:ERROR setFile(null,true) call faild.
启动hadoop,没有启动namenode进程.log4j:ERROR setFile(null,true) call faild. 解决办法: cd /home/hadoop/hadoop-en ...
- RHEL7全新初始化进程管理systemd(图形启动和非图形启动切换)
红帽RHEL7系统已经替换了大家熟悉的初始化进程System V init,正式采用全新的 初始化进程systemd.初始化进程systemd使用了并发启动机制,所以开机速度上得到了不小的 提升. 将 ...
- VS2017 启动调试出现 无法启动程序“http://localhost:15613” 操作在当前状态中是非法的。 同时附加进程也是错误的解决方法
第一次发表这样的博客,不会如何的排版,还有很多的不懂,大神勿喷哈! 同时是给自己做的一次记录,已方便后面可能会同样出现该问题后不用像无头苍蝇一样到处百度乱找 VS2017 启动调试出现 无法启动程序 ...
- java程序怎么在一个电脑上只启动一次,只开一个进程
目录 <linux文件锁flock> <NIO文件锁FileLock> <java程序怎么在一个电脑上只启动一次,只开一个进程> 方案1: 单进程程序可以用端口绑定 ...
- Swoole 启动一个服务,开启了哪些进程和线程?
目录 概述 代码 小结 概述 Swoole 启动一个服务,开启了哪些进程和线程? 为了解决这个问题,咱们启动一个最简单的服务,一起看看究竟启动了哪些进程和线程? 然后结合官网运行流程图,对每个进程和线 ...
- VS2017装了西红柿插件之后,启动很多次才能启动成功,进程有很多devenv.exe但是就是无法启动成功
VS2017装了西红柿插件之后,启动很多次才能启动成功,进程有很多devenv.exe但是就是无法启动成功,这个可能是西红柿插件visual assist的问题 启动vs命令行 输入: devenv ...
- Tomcat启动程序端口冲突、确认相应进程及杀死冲突进程的解决方案
一. 查看所有进程占用的端口 在开始-运行-cmd,输入:netstat –ano可以查看所有进程 二.查看占用指定端口的程序(1)命令窗口输出 命令:netstat –ano | findstr & ...
随机推荐
- htmlunit学习之java.lang.NoSuchMethodError: com.gargoylesoftware.htmlunit.WebClient.getOptions()Lcom/gargoylesoftware/htmlunit/WebClientOptions;
运行到这里就报错 java.lang.NoSuchMethodError: com.gargoylesoftware.htmlunit.WebClient.getOptions()Lcom/gargo ...
- JSP-http和tomcat
一 Http 1.1 javaweb概述 1.2 http协议的概述 1.什么是Http协议 HTTP,超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的 ...
- NKOJ1469 通向自由的钥匙
P1469通向自由的钥匙 时间限制 : 10000 MS 空间限制 : 65536 KB 问题描述 通向自由的钥匙被放n个房间里,这n个房间由n-1条走廊连接.但是每个房间里都有特别 的保护魔 ...
- Leetcode599.Minimum Index Sum of Two Lists
假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示. 你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅. 如果答案不止一个,则输出所有答 ...
- 考试总结 模拟27(W)
心得:太弱了,T1问题:理解错了题,矿石可以放到同一处,,太弱了,小凯的疑惑,没什么印象T2问题:拆式子T3问题:换根dp的思想模拟9T1+T2
- Hdu 1269 强连通判定
题目链接 迷宫城堡 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total S ...
- Spring_事务
事务管理: 用来确保数据的完整性和一致性 事务就是一系列的动作,它们被当做一个单独的工作单元.这些动作要么全部完成,要么全部不起作用 事务的四个关键属性 原子性 一致性 隔离性 持久性 Spring两 ...
- js计算精度问题(浮点数误差,大数计算出错)
https://github.com/camsong/blog/issues/9 0.1+0.2 //0.30000000000000004 1-0.9 //0.09999999999999998 9 ...
- MVC开发模式与web经典三层框架
MVC:Model(模型)-View(视图)-Controller(控制器) ----是一种软件架构模式,一般把软件系统拆分为这三个层次. 视图View层:前端交互界面或者后端系统界面,它从模型中获取 ...
- font-weight
font-weight 属性设置文本的粗细. 该属性用于设置显示元素的文本中所用的字体加粗.数字值 400 相当于 关键字 normal,700 等价于 bold. 每个数字值对应的字体加粗必须至少与 ...