ll -l命令的Perl返回错误

时间:2016-07-27 17:22:27

标签: perl nagios nagiosxi

我正在运行来自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 - 没有此类文件或目录

1 个答案:

答案 0 :(得分:2)

ls是unix命令,默认情况下,windows中没有这样的命令。

如果您需要,可以安装它,例如来自GNU CoreUtils

您还需要将第639行的shell命令从LANG=C ls -l更改为ls -l,因为在Windows中您无法像这样设置环境变量。