-2

我正在从 Nagios 运行一个 perl 脚本来检查 Windows 机器上某些文件的某些特征。当我从 Nagios 运行脚本时,它会响应以下结果:

未知错误 - 执行 LANG=C ls -l 导致错误 32512 -

我的代码来自这个 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的行,但现在我得到了:

未知错误 - 无法执行 ls -l - 没有这样的文件或目录

4

1 回答 1

2

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

如果你需要它,你可以安装它,例如从GNU CoreUtils

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

于 2016-07-27T17:31:59.037 回答