【问题标题】:Nagios Plugin to Monitor LOG File For multiple wordsNagios 插件来监控多个单词的 LOG 文件
【发布时间】:2013-11-24 06:18:28
【问题描述】:

我正在尝试制作一个简单的 shell 脚本插件来通过 nagios 监视日志文件中特定单词的日志文件。但是当我尝试使用 nagios 运行脚本时,它会返回错误的结果。它总是在最后一行执行脚本并忽略所有其他命令。但是当我尝试在终端上运行脚本时,脚本运行准确。请任何人帮助我处理脚本。

!/bin/bash

word1="flag"

word2="subscriber_master"

word3="成功"

word4="Queryyyyselect"

word5="标准输出"

word6="CALLSTART"

word7="HFA"

word8="SVA"

word9="SCA"

word10="SLBSA"

word11="SFA"

word12="EMVA"

word13="EMC"

word14="EMLBSA"

word15="EMFA"

word16="​​DEACT"

word17="MSISDN"

word18="添加命中"

word19="BADDI"

word20="EmergencyRetry"

word21="USSDR"

word22="ExtendedEmergencyRetry"

word23="删除音频"

word24="IVREmergencyLogger"

word25="VAACTION"

word26="PRS"

word27="YNO"

filename="/root/Desktop/server.log"

ECHO="/bin/echo"

GREP="/bin/egrep"

TAIL="/usr/bin/tailf"

returnStateOK=0

returnStateWarning=1

returnStateCritical=2

returnStateUnknown=3

a=timeout 2 "$TAIL" "$filename"

{

对于 $word{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 ,22,23,24,25,26,27}

如果 [[ $( "$ECHO" "$a"|"$GREP" -wo "$word") =~ "$word" ]]

然后

"$ECHO" " OK: "$word" 找到 "

退出=$returnSTateOK

fi

如果 [[ $( "$ECHO" "$a"|"$GREP" -wo "$word") != "$word" ]]

然后

"$ECHO" "警告:未找到"$word""

exit=$returnStateCritical

fi

完成

}

【问题讨论】:

  • 请重新格式化代码。删除不必要的空行。使用 Ctrl + K 或按钮栏中的 {} 按钮将行格式化为代码块。

标签: linux bash shell nagios


【解决方案1】:

根据经验,我的猜测是这是一个权限问题:nagios 用户(插件/​​脚本正在运行)没有读取文件的权限。您可以修复文件和目录权限(如果可能,可以登录到不同的路径?)或使用 sudo 运行脚本。

【讨论】:

    【解决方案2】:

    值得一试:看起来您在第一个条件中拼错了 OK 返回变量。

    exit=$returnSTateOK
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多