2016-07-27 147 views
-2

我正在從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命令 - 沒有這樣的文件或目錄

回答

2

ls是unix命令,並通過在Windows中默認沒有這樣的命令。

如果你需要它,你可以安裝它,例如從GNU CoreUtils

您還需要將第639行的shell命令從LANG=C ls -l更改爲ls -l,因爲在Windows中不能設置那樣的環境變量。

+6

即使他們這樣做了,'LANG = C ls -l'仍然是一個無效的Windows命令 – ikegami

+0

'ls'在窗口框中,我確實將LANG = C行更改爲ls -l,但我仍然得到一個:UNKNOWN ERROR - 無法執行ls -l - 在nagios中沒有這樣的文件或目錄,但是如果我從命令提示符運行相同的命令,它工作正常 – mithrix

+1

您應該檢查'ls'是否在任何環境Nagios正在運行。它可能與命令行路徑不同。 –