我正在运行来自Nagios的perl脚本,以检查Windows机器上某些特性的某些文件。当我从Nagios运行脚本时,它会返回以下结果:
UNKNOWN ERROR - 执行LANG = C ls -l导致错误32512 -
我的代码是from this GitHub,对第168行进行了一次修改,因此我可以将它与windows一起使用:
use lib 'C$\Progra~1\Nagios\NRDS_Win\plugins';
奇怪的是程序实际上是从Windows机器上的命令行输出预期结果。
这是命令:
check_files.pl -D c:\ logs -F Health.log -a'~,300'
以下是一个例子:
CRITICAL - Health.log是10703(超过300)秒 - 1 找到Health.log文件
我在代码中修改了定义LANG=C ls -l
的行,但现在我得到了:
UNKNOWN ERROR - 无法执行ls -l - 没有此类文件或目录
答案 0 :(得分:2)
ls
是unix命令,默认情况下,windows中没有这样的命令。
如果您需要,可以安装它,例如来自GNU CoreUtils
您还需要将第639行的shell命令从LANG=C ls -l
更改为ls -l
,因为在Windows中您无法像这样设置环境变量。