pb nagios python вернуть ноль - PullRequest
       11

pb nagios python вернуть ноль

0 голосов
/ 23 октября 2018

У меня есть pb со скриптом на python, который использует команду bash (я не разрешил этот сценарий pb pb nagios bash, и нулевой результат, если , поэтому я попытался сделать то же самое с python).Я получаю место на диске в переменной с помощью этой команды:

total=sp.Popen(["/srv/eyesofnetwork/nagios/plugins/check_nt", "-H", host,"-p", "12489", "-s", '', "-v", "USEDDISKSPACE", "-l", lecteur], stdin=sp.PIPE, stdout=sp.PIPE, stderr=sp.PIPE).communicate()[0].split("\n")

Я получаю значение "OK e :: 4.701TB / 5TB used | 'e: free' = 306.11612G; 20;5; 0; 5119.87206 'e: free%' = 6%; 0; 0; 0; 100 \ n " Поэтому я использую эту команду, чтобы получить только размер диска (я знаю, что он не чистый, но я неэксперт по питону):

total=int(str(total).split()[3].split(',')[0])

Но когда я добавляю эту строку в скрипт, nagios возвращает «ноль» в качестве информации.Когда я запускаю скрипт вручную, он работает, а когда я комментирую эту строку, он тоже работает в интерфейсе nagios.Мне нужно это значение для изменения предупреждений и критических пороговых значений в зависимости от размера диска.Я не понимаю, потому что я не возвращаю это значение, я использую его только в сценарии для выполнения другой команды с IF:

if total < 2.05 :
            sp.Popen(["/srv/eyesofnetwork/nagios-3.5.1/plugins/check_nrpe", "-H", host, "-c", "check_drivesize", "-a", "drive=" + lecteur, "warning=free<0.2G", "critical=free<0.1G", "show-all", "perf-config=*(unit:G)"])
    elif total >= 2.05 and total < 99.99.......

Спасибо.

1 Ответ

0 голосов
/ 24 октября 2018

Кто-то из другого форума дает мне решение. Я должен использовать float (), а не int (), потому что я сравниваю переменную с float после.

...