У меня есть 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.......
Спасибо.