广告
返回顶部
首页 > 资讯 > 服务器 >shell脚本实现服务器进程监控的方法
  • 338
分享到

shell脚本实现服务器进程监控的方法

shell监控进程shell监控进程脚本 2022-06-04 22:06:42 338人浏览 薄情痞子
摘要

写作背景:   项目是基于java、WEBlogic及timer的处理模式,每次服务部署之后timer的整体状态是一个盲区,因为100多个进程,是否有启动遗漏或者启动重复的,想做到一目了然是件困难的事情。所以我考

  • 写作背景:

  项目是基于java、WEBlogic及timer的处理模式,每次服务部署之后timer的整体状态是一个盲区,因为100多个进程,是否有启动遗漏或者启动重复的,想做到一目了然是件困难的事情。所以我考虑用shell脚本的文件查找与匹配方法来解决这个问题,简单记录下,仅供参考。 

  • 程序说明:

1)通过将系统定义的进程(timer)配置到配置文件process_signal.config中

2)将服务器当前所有的java进程存储到process_current.txt中

3)逐行读取process_signal.config中的进程,到process_current.txt中进行匹配

4)没有匹配到则为启动遗漏,存入到process_invalid.txt中,匹配到1次正常(不做处理),匹配到大于1次,则将timer名称及启动次数记录到process_invalid.txt中。

5)通过定时器30分钟一次执行脚本,使用sqlLOAD将process_invalid.txt加载到数据表中,对数据库表进行监控

  •  脚本说明:

1、整体文件结构:


webusr@iomtimer1:/weblogic/script/process_signal >ls
process_current.txt    process_invalid.txt    process_invalid_his.txt    process_signal.config    process_signal.sh

2、进程配置示例:


webusr@iomtimer1:/weblogic/script/process_signal >cat process_signal.config 
#停复发NAS
extapp.tftonas.PutTfToNas 10 2
extapp.tftonas.PutTfToNas 11 2
extapp.tftonas.PutTfToNas 12 3

3、执行结果记录:


webusr@iomtimer1:/weblogic/script/process_signal >cat process_invalid.txt 
127.0.0.1 process [extapp.leaseroute.PutToLeaseRoute 180] is not exist 2018-04-11 08:29:00
127.0.0.1 process [ DealWorkTaskTimer 3001 ] is repeatRun 2 Times 2018-04-11 17:51:56 

4、逻辑匹配入口:


webusr@iomtimer1:/weblogic/script/process_signal >cat process_signal.sh
#!/bin/sh
path=/weblogic/script/process_signal #脚本路径
file_config=process_signal.config #配置文件名
file_result=process_invalid.txt #错误进程信息
file_tmp=process_current.txt #当前进程信息(全量,临时)
if_get_exist="N" #是否输出日志(N不输出,Y输出)
hostip="127.0.0.1" #主机IP
currenttime=`date "+%Y-%m-%d %H:%M:%S"` #当前系统时间
#定义方法get_process_signal()
get_process_signal(){
  # 转储上次记录到历时,追加 
  cat /weblogic/script/process_signal/process_invalid.txt >> process_invalid_his.txt 
  #清空错误进程信息,当前进程信息
  >/weblogic/script/process_signal/process_invalid.txt
  >/weblogic/script/process_signal/process_current.txt
  #输出当前时间并获取主机上所有java类进程
  echo "######################### get ps info time is: " $currenttime " #########################">>/weblogic/script/process_signal/process_current.txt
  ps -ef|grep java >>/weblogic/script/process_signal/process_current.txt
  echo "######################### get ps info time is: " $currenttime " #########################">>/weblogic/script/process_signal/process_current.txt
  #逐条读取配置文件process_signal.config
  cat /weblogic/script/process_signal/process_signal.config | while read LINE 
  do
    # 如果配置文件含有#号,则跳过不处理 
    if [[ `echo $LINE|cut -c1-1` != "#" ]]; then
      #如果配置文件记录在主机进程中存在
      if [[ -n `find $path -name $file_tmp | xargs grep -w "$LINE"` ]]; then
        #开关为Y,输出到屏幕
        if [[ $if_get_exist = "Y" ]]; then
          echo $hostip " process [" $LINE "] is exist " $currenttime >>/weblogic/script/process_signal/process_invalid.txt
        fi 
        #配置文件记录与主机进程匹配
        run=`find $path -name $file_tmp | xargs grep -w "$LINE"|wc -l`
        if (($run>1)); then
          #打印配置文件中记录与主机进程匹配数大于1的记录
          echo $hostip " process [" $LINE "] is repeatRun "$run " Times" $currenttime >>/weblogic/script/process_signal/process_invalid.txt
        fi
        #如果配置文件记录在主机进程中不存在
      else
        echo $hostip " process ["$LINE"] is not exist " $currenttime >>/weblogic/script/process_signal/process_invalid.txt
      fi 
    fi 
  done
}
#调用方法
get_process_signal
#fhs.workflow.EventMonitORMain 4
#find /weblogic/script/process_signal -name process_current.txt | xargs grep -i "fhs.workflow.EventMonitorMain 4"
#ps -ef|grep java|grep "fhs.workflow.EventMonitorMain 4"

5、SqlLOAD入库(含控制文件conl.ctl)


efile92@iomitfdb2:/interface/contabfile/monitor_time >cat conl.ctl 
load data 
infile '/interface/contabfile/monitor_time/process_invalid.txt' 
truncate into table T_MONITOR_TIMER
fields terminated by '\n'
-- Create table
create table T_MONITOR_TIMER
(
  info VARCHAR2(1000)
)
sqlldr userid=用户名/密码@sid control=/interface/contabfile/monitor_time/conl.ctl log=/interface/contabfile/monitor_time/conl.log

总结

以上所述是小编给大家介绍的shell脚本实现服务器进程监控的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

--结束END--

本文标题: shell脚本实现服务器进程监控的方法

本文链接: https://www.lsjlt.com/news/19530.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • shell脚本实现服务器进程监控的方法
    写作背景:   项目是基于java、weblogic及timer的处理模式,每次服务部署之后timer的整体状态是一个盲区,因为100多个进程,是否有启动遗漏或者启动重复的,想做到一目了然是件困难的事情。所以我考...
    99+
    2022-06-04
    shell 监控进程 shell 监控进程脚本
  • Shell脚本实现的memcached进程监控
    WEB服务器使用memcached,但是不知道为什么memcached老是挂掉(基本20分钟~50分钟左右),导致部分网站页面在访问的时候出错;定义日志后,查看日志也未能发现什么;初步判定由于之前更新lib...
    99+
    2022-06-04
    脚本 进程 Shell
  • 使用shell脚本怎么实现服务器进程监控
    使用shell脚本怎么实现服务器进程监控?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。程序说明:1)通过将系统定义的进程(timer)配置到配置文件proces...
    99+
    2023-06-09
  • 如何实现监控MySQL服务shell脚本
    这篇文章给大家分享的是有关如何实现监控MySQL服务shell脚本的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1)端口判断法==>仅适合数据库本地使用法1:if条件判断方法[root@oldboy&nbs...
    99+
    2023-06-09
  • shell脚本shell脚本实现监控某个进程意外停止后拉起进程
    小编给大家分享一下shell脚本shell脚本实现监控某个进程意外停止后拉起进程,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!要监护的进程启动脚本:实现脚本写入c...
    99+
    2023-06-09
  • Linux下使用Shell脚本实现进程监控的流程
    本文介绍一种在Linux系统下为实现某些关键进程状态的实时监控而使用shell脚本的编写方法。在这里主要通过监控某些进程是否退出作为判断依据,如果某个进程退出了,则进行对应的恢复处理...
    99+
    2023-02-27
    Shell脚本进程监控 Linux使用Shell脚本进程监控
  • 用shell+sendmail实现服务器监控报警小脚本
    这种email报警脚本遍地都是,很多用的sendmail、postfix,感觉有些大材小用了;也有些用perl的NET::SMTP和Authen::SASL模块发信的,不过我perl用的不好,老发出些莫名其...
    99+
    2022-06-04
    脚本 服务器 shell
  • shell脚本实现监控shell脚本的执行流程及变量的值
    很多时候,我们都会写shell程序来完成一些不用重复造轮子的时刻,但是,又因为shell语句中也会有函数,也会有变量,在运行后到底执行了哪些相关的操作,就需要对具体执行过程中的变量等可变的因素的监控,那么我...
    99+
    2022-06-04
    脚本 变量 流程
  • Linux下如何使用Shell脚本实现进程监控的流程
    这篇“Linux下如何使用Shell脚本实现进程监控的流程”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux下如何使用...
    99+
    2023-07-05
  • 监控服务器swap并重启php的Shell脚本
    折中一下,写个脚本监控swap吧,放在crontab里面,2小时执行一次,世界安静了,再也没有烦人的报警短信了 #!/bin/bash function usage { echo "Usa...
    99+
    2022-06-04
    重启 脚本 服务器
  • Shell脚本监控服务器在线状态和邮件报警的方法
    对于服务器来说在线率很重要,出现问题要能及时解决,但系统管理员不能一直守在电脑旁边,通过脚本监控网站出现问题及时通过mail通知管理员,如果是139邮箱还可免费手机短信通知。注:通过系统直接发送mail容易...
    99+
    2022-06-04
    在线 脚本 状态
  • 如何用shell脚本实现监控shell脚本的执行流程及变量的值
    本篇内容主要讲解“如何用shell脚本实现监控shell脚本的执行流程及变量的值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用shell脚本实现监控shell脚本的执行流程及变量的值”吧!...
    99+
    2023-06-09
  • shell脚本实现监控某个进程意外停止后拉起进程
    要监护的进程启动脚本:实现脚本写入crontab定时任务 #!/usr/bin/env bash # scheduled task at 22:00 everyday scriptzMqMCHnw_path=`eva...
    99+
    2022-06-04
    shell脚本拉起进程 shell脚本实现监控某个进程意外停止后拉起进程
  • shell脚本实现多进程运行的方法示例
    本文主要跟大家分享了shell脚本实现多进程运行的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 例子 for ip in 192.168.56.{1..254} do ( ping ...
    99+
    2022-06-04
    示例 脚本 进程
  • shell脚本怎样实现定时监控http服务的运行状态
    这篇文章主要为大家展示了“shell脚本怎样实现定时监控http服务的运行状态”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“shell脚本怎样实现定时监控http服务的运行状态”这篇文章吧。注意...
    99+
    2023-06-05
  • shell脚本怎么实现监控php-fpm并自动重启服务
    这篇文章主要讲解了“shell脚本怎么实现监控php-fpm并自动重启服务”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“shell脚本怎么实现监控php-fpm并自动重启服务”吧!脚本代码:...
    99+
    2023-06-09
  • 如何监控服务器swap然后重启php的Shell脚本
    本篇内容主要讲解“如何监控服务器swap然后重启php的Shell脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何监控服务器swap然后重启php的Shell脚本”吧!代码如下:#!/bi...
    99+
    2023-06-09
  • Shell脚本实现监视指定进程的运行状态
    在之前的博客中,曾经写了自动化测试程序的实现方法,现在开发者需要知道被测试的进程(在此指运行在LINUX上的主进程的)在异常退出之前的进程的运行状态,例如内存的使用率、CPU的使用率等。 现用shell脚本...
    99+
    2022-06-04
    脚本 运行状态 进程
  • shell脚本实现Hbase服务的监控报警和自动拉起问题
    目录需求说明1. 通过服务名监控2. 通过端口监控3. 企业微信消息通知脚本4.定时调度5. 报警信息需求说明 期初是我们的物理机上安装了Hbase,由于物理机硬件配置还可以,1T内存,64核。只有4台机器,我们装完Hb...
    99+
    2022-11-09
  • 如何用Shell脚本实现监控Squid运行进程数并自动重启
    本篇内容介绍了“如何用Shell脚本实现监控Squid运行进程数并自动重启”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:#!/bi...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作