加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Linux适用监控脚天职享——行使 Shell 搜查历程是否存在

发布时间:2019-08-27 01:46:34 所属栏目:教程 来源:老王谈运维
导读:在运维事变中,为担保营业的正常运行,我们必要按时查察指定的历程是否还存在,一旦历程退出了,声名处事也许存在题目,运维工程师就可以在第一时刻处理赏罚题目。本日就跟各人分享一个适用的shell剧本时候搜查你的历程状态。 在对历程举办监控时,我们一样平常需

在运维事变中,为担保营业的正常运行,我们必要按时查察指定的历程是否还存在,一旦历程退出了,声名处事也许存在题目,运维工程师就可以在第一时刻处理赏罚题目。本日就跟各人分享一个适用的shell剧本——时候搜查你的历程状态。

在对历程举办监控时,我们一样平常必要获得该历程的 ID,历程 ID 是历程的独一标识,可是偶然也许在处事器上差异用户下运行着多个沟通历程名的历程。

Linux适用监控脚天职享——行使 Shell 搜查历程是否存在

下面的函数 GetPID 给出了获取指定用户下指定历程名的历程 ID 成果(今朝只思量这个用户下启动一个此历程名的历程),它有两个参数为用户名和历程名,它起首行使 ps 查找历程信息,同时通过 grep 过滤出必要的历程,最后通过 sed 和 awk 查找必要历程的 ID 值(此函数可按照现实环境修改,好比必要过滤其余信息等)。

对历程举办监控

  1. function GetPID #User #Name  
  2.  {  
  3.  PsUser=$1  
  4.  PsName=$2  
  5.  pid=`ps -u $PsUser|grep $PsName|grep -v grep|grep -v vi|grep -v dbxn  
  6.  |grep -v tail|grep -v start|grep -v stop |sed -n 1p |awk '{print $1}'`  
  7.  echo $pid  
  8.  } 

示例演示:

1. 源措施(譬喻查找用户为 root,历程名为 TestApp 的历程 ID)

  1. PID=`GetPID root TestApp`    
  2.  echo $PID 

2. 功效输出

  1. 11426  
  2.  [dyu@xilinuxbldsrv shell]$ 

3. 功效说明

从上面的输出可见:11426 为 root 用户下的 TestApp 措施的历程 ID。

4. 呼吁详解

(1)ps: 查察体系中刹时历程信息。 参数:

  • -u< 用户辨认码 > 列出属于该用户的措施的状况,也可行使用户名称来指定
  • -p< 历程辨认码 > 指定历程辨认码,并列出该历程的状况
  • -o 指定输格外式

(2)grep: 用于查找文件中切合字符串的当前行。 参数:

  • -v 反向选择,亦即表现出没有 ‘征采字符串’ 内容的那一行

(3)sed: 一个非交互性文本编辑器,它编辑文件或尺度输入导出的文件,一次只能处理赏罚一行内容。 参数:

  • -n 读取下一个输入行,用下一个呼吁处理赏罚新的行而不是用第一个呼吁
  • p 符号 打印匹配行

(4)awk:一种编程说话,用于在 linux/unix 下对文本和数据举办处理赏罚。除了在呼吁行中行使,它更多是作为脚原来行使。 参数:

  • -F fs or –field-separator fs :指定输入文件折脱离符,fs 是一个字符串可能是一个正则表达式,如 -F:。

PS:偶然有也许历程没有启动,下面的成果是搜查历程 ID 是否存在,假云云历程没有运行输出:

  1. The process does not exist.  
  2.  # 搜查历程是否存在 
  3.  if [ "-$PID" == "-" ]  
  4.  then  
  5.  {  
  6.  echo "The process does not exist." 
  7.  }  
  8.  fi 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读