0

我是 bash 的菜鸟。

我想创建检查,所以如果 1 条路径已死,我想收到警告消息,超过 1 条路径下关键,没有死路径 - 一切正常

我会使用这个命令,它的输出:

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 

输出应该类似于:路径处于 $statustxt 状态

4

1 回答 1

0

首先欢迎来到 Stack Overflow。

  1. 声明一个路径数组
  2. 扫描所有这些
  3. 检查路径是否存在
  4. 如果存在则增加一个计数器
  5. 然后检查计数器的退出状态

这样的事情应该没问题:

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
于 2017-07-25T14:56:01.870 回答