Назад | Перейти на главную страницу

Nagios Check - сценарии

Если я жестко кодирую процесс, я хочу найти и запустить скрипт a

Скрипт А

#!/bin/bash

PROCESS=/System/Library/Frameworks/QuickLook.framework/Resources/quicklookd.app/Co

number=$(ps aux | grep $PROCESS | wc -l)

if [ $number -le 1 ]
        then
        echo "Nope - This seems NOT to be Running"
        exit 2
else
        if [ $number -ge 2 ]
        then
        echo "This seems to be Running"
        exit 0
        fi
fi

Сценарий дает мне ожидаемый ответ.

Если я запустил сценарий B следующим образом ./scriptb.sh /System/Library/Frameworks/QuickLook.framework/Resources/quicklookd.app/Co

Он всегда возвращается как «Кажется, это работает», даже если я поставлю sakdjnsakjsakfndsdkjnf, как они утверждают?

#!/bin/bash

number=$(ps aux | grep $1 | wc -l)

if [ $number -le 1 ]
        then
        echo "Nope - This seems NOT to be Running"
        exit 2
else
        if [ $number -ge 2 ]
        then
        echo "This seems to be Running"
        exit 0
        fi
fi

В чем дело?

grep помещается в список процессов.

Используйте pgrep для поиска процесса. Что-то вроде:

T=$(pgrep -f "$PROCESS")

if test -z "$T" ; then
 ...
else
 ...
fi

должен сделать свое дело.