微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我需要帮助创建一个 shell 脚本来告诉我某个进程是否已启动并正在运行,以便我可以在 PRTG 中监视该进程

如何解决我需要帮助创建一个 shell 脚本来告诉我某个进程是否已启动并正在运行,以便我可以在 PRTG 中监视该进程

我正在使用一个名为 PRTG 的监控系统来监控我们的环境。 PRTG KB 建议使用称为 SSH 脚本的脚本来监视进程。脚本需要存储在 /var/prtg/scripts 中。

我发现了一个有人用于 PRTG 的脚本:

#!/bin/sh

pgrep wrapper $1  2>&1 1>/dev/null

if [ $? -ne 0 ]; then
  echo "1:$?:$1 Down"
else
  echo "0:$?:OK"
fi

但是,PRTG 在 Web GUI 中返回以下错误代码

响应格式不正确:“pgrep:只能提供一种模式尝试`pgrep --help'了解更多信息。1:0:Wrapper Down”

但是,当我在 Linux 服务器上运行脚本时,它会打印出来:

0:1:好的

所以我的问题是,用来告诉 PRTG 进程是“关闭”还是“启动”的最佳脚本是什么?

################### 编辑以进一步澄清:

我更改了脚本,它在命令行上工作得很棒……但问题似乎在于 PRTG 读取输出的方式。显然它的格式不正确。所以这是我的脚本:

#!/bin/bash
SERVICE="wrapper"
if pgrep -x "$SERVICE" >/dev/null
then
    echo "$SERVICE is running"
else
    echo "$SERVICE stopped"
fi

这就是 PRTG 出错的地方:

Response not well-formed: "wrapper is running "

所以...PRTG 是说我使用的传感器希望脚本输出为这种格式:

The returned data for standard SSH Script sensors must be in the following 
format:

returncode:value:message

Value has to be a 64-bit integer or float. It is used as the resulting value 
for this sensor (for example,bytes,milliseconds) and stored in the 
database. The message can be any string (maximum length: 2000 characters).

The SSH script returncode has to be one of the following values:

VALUE                                  DESCRIPTION

 0                                         OK
 1                                       WARNING
 2                                     System Error
 3                                    Protocol Error
 4                                     Content Error

所以我想现在...问题是如何让该脚本输出 PRTG 想要看到的内容

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。