我正在从Nagios运行perl脚本来检查某些文件是否在Windows机器上有特定的特征。当我从Nagios的运行该脚本,它的结果回应:Perl为ls -l命令返回错误
未知错误 - LANG = C LS的执行-l导致错误32512 -
我的代码是from this GitHub用单线168的变形例,所以我可以与窗口使用它:
use lib 'C$\Progra~1\Nagios\NRDS_Win\plugins';
奇怪的是该程序实际上输出从Windows机器上的命令行预期的结果。
这里是命令:
check_files.pl -D C:\日志-F Health.log -a '〜300'
下面是一个例子:
CRITICAL - Health.log是10703(大于300)秒旧 - 1个 Health.log文件中找到
我修改的定义代码LANG=C ls -l
线,但现在我只想找到:
未知错误 - 无法执行ls -l命令 - 没有这样的文件或目录
即使他们这样做了,'LANG = C ls -l'仍然是一个无效的Windows命令 – ikegami
'ls'在窗口框中,我确实将LANG = C行更改为ls -l,但我仍然得到一个:UNKNOWN ERROR - 无法执行ls -l - 在nagios中没有这样的文件或目录,但是如果我从命令提示符运行相同的命令,它工作正常 – mithrix
您应该检查'ls'是否在任何环境Nagios正在运行。它可能与命令行路径不同。 –