У меня есть pb со скриптом на python, который использует команду bash (я не разрешил этот pb pb nagios bash script null приводит к if, поэтому я попытался сделать то же самое с 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,701 ТБ/5 ТБ используется|'e: свободно'=306.11612G;20;5;0;5119.87206 'e: свободно %'=6%;0;0;0; 100\n" Поэтому я использую эту команду, чтобы получить только размер диска (я знаю, что это не так, но я не эксперт в python):
total=int(str(total).split()[3].split(',')[0])
Но когда я добавляю эту строку в скрипт, nagios возвращает «null» в качестве информации. Когда я запускаю скрипт вручную, он работает, и когда я комментирую эту строку, он работает и в интерфейсе 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.......
Спасибо.