Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 检查_MK/Nagios脚本以监视多路径计数_Bash_Shell_Scripting_Nagios_Check Mk - Fatal编程技术网

Bash 检查_MK/Nagios脚本以监视多路径计数

Bash 检查_MK/Nagios脚本以监视多路径计数,bash,shell,scripting,nagios,check-mk,Bash,Shell,Scripting,Nagios,Check Mk,我是bash的noob 我想创建一个检查,所以如果有一条路径是死的,我想得到警告消息,超过一条路径是关键的,没有死的路径都是可以的 我将使用此命令及其输出: powermt display dev=all CHECK_DEGRADED=/usr/local/bin/sudo /sbin/powermt display | grep dead| wc -l if [ $CHECK_DEGRADED -eq 1 ]; then status=1 statustxt=WARNING els

我是bash的noob

我想创建一个检查,所以如果有一条路径是死的,我想得到警告消息,超过一条路径是关键的,没有死的路径都是可以的

我将使用此命令及其输出:

powermt display dev=all 

CHECK_DEGRADED=/usr/local/bin/sudo /sbin/powermt display | grep dead| wc -l
 if [ $CHECK_DEGRADED -eq 1 ]; then

status=1
statustxt=WARNING

 else if [ $CHECK_DEGRADED -gt 1 ];  then

status=2
statustxt=CRITICAL


else

status=0
statustxt=OK

 fi 

输出应该是这样的:Path处于$statustxt状态

首先欢迎使用堆栈溢出

  • 声明一个路径数组
  • 扫描所有这些
  • 检查路径是否存在
  • 如果存在,增加一个计数器
  • 然后检查计数器的退出状态
  • 类似的东西应该可以:

    deadPath=0
     declare -a pathArray=(/usr/local/bin/sudo /sbin/powermt display)
     for i in "${pathArray[@]}"
     do
       if [ -d "$i" ]; then
          # Will enter here if path exists
          echo "Path $i Exists"
       else
        deadPath=$[$deadPath+1] 
       fi
    done
    if (( deadPath > 1 )); then
      echo "Critical"
      exit 2
    elif (( deadPath == 1 )); then
      echo "Warning"
      exit 1
    else 
      echo "OK"
      exit 0
    fi
    

    谢谢Daniele我会试试的!1对于Nagios nrpe,您需要以状态退出每个条件,0表示OK,1表示problem,2表示Criticalies@dragan.vucanovic,只需将echo替换为退出状态即可。已批准审核。否,将需要回显将消息返回到Nagios控制台。它需要退出状态和echo(只有一行文本),我想在最后添加最终输出,所以我添加了如下内容:echo“Path处于$statustxt状态”,但check_mk抱怨“check plugin“local”中出现异常,agent部分OK中的无效行”