2016-07-27 2 views
-2

Я запускаю Perl-скрипт из Nagios для проверки некоторых файлов на определенные характеристики на машине Windows. Когда я запускаю скрипт из Nagios он отвечает результат:Perl Возвращаемая ошибка для команды ls -l

UNKNOWN ERROR - выполнение LANG = C Ls -l приводит к ошибке 32512 -

Мой код from this GitHub с одним модификация линии 168, так что я могу использовать его с окнами:

use lib 'C$\Progra~1\Nagios\NRDS_Win\plugins'; 

странным является программа фактически выводит ожидаемый результат из командной строки на машине окна.

Вот команда:

check_files.pl -Д C: \ журналы -F Health.log -a '~ 300'

Вот пример:

CRITICAL - Health.log является 10703 (более 300) секунд старый - 1 Health.log файлы найдены

я изменил линию, определенную LANG=C ls -l в коде, но теперь я просто получаю:

UNKNOWN ERROR - не может выполнить LŠ -l - Нет такого файла или каталога

ответ

2

ls это команда Unix и по умолчанию в Windows нет такой команды.

Если вам это нужно, вы можете установить его, например. от GNU CoreUtils

Вам также необходимо изменить команду оболочки по строке 639 от 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 работает. Он может отличаться от пути командной строки. –

Смежные вопросы