pb nagios python return 空
pb nagios python return null
我在 python 中有一个带有脚本的 pb,它使用 bash 命令(我没有解决这个 pb 所以我尝试用 python).我使用此命令在变量中获取磁盘 space:
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"
所以我使用这个命令只获取磁盘大小(我知道它不干净但我不是python方面的专家):
total=int(str(total).split()[3].split(',')[0])
但是当我将这一行添加到脚本中时,nagios return "null" 作为信息。当我 运行 脚本手动工作时,当我评论这一行时,它在 nagios 界面中也工作。我需要这个值来根据磁盘的大小修改警告和临界阈值。我不明白,因为我没有 return 这个值,我只是在脚本中使用它来执行另一个带有 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.......
谢谢。
来自另一个论坛的人告诉我 solution.I 必须使用 float() 而不是 int() 因为我之后将变量与 float 进行比较。
我在 python 中有一个带有脚本的 pb,它使用 bash 命令(我没有解决这个 pb
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" 所以我使用这个命令只获取磁盘大小(我知道它不干净但我不是python方面的专家):
total=int(str(total).split()[3].split(',')[0])
但是当我将这一行添加到脚本中时,nagios return "null" 作为信息。当我 运行 脚本手动工作时,当我评论这一行时,它在 nagios 界面中也工作。我需要这个值来根据磁盘的大小修改警告和临界阈值。我不明白,因为我没有 return 这个值,我只是在脚本中使用它来执行另一个带有 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.......
谢谢。
来自另一个论坛的人告诉我 solution.I 必须使用 float() 而不是 int() 因为我之后将变量与 float 进行比较。