Je cours un script Perl de Nagios pour vérifier certains fichiers pour certaines caractéristiques sur une machine Windows. Quand je lance le script de Nagios, il répond par un résultat de:Perl Erreur de retour pour la commande ls -l
erreur INCONNU - exécution de LANG = C ls -l a donné lieu à une erreur 32512 -
Mon code est from this GitHub avec un seul modification de la ligne 168 donc je peux l'utiliser avec des fenêtres:
use lib 'C$\Progra~1\Nagios\NRDS_Win\plugins';
la chose étrange est le programme génère en fait le résultat attendu de la ligne de commande sur la machine windows.
Voici la commande:
check_files.pl -D c: \ logs -F Health.log -a '~, 300'
Voici un exemple:
CRITIQUE - Health.log est 10703 (plus de 300) secondes de - 1 fichiers Health.log trouvé
I modifié ligne qui définit LANG=C ls -l
dans le code, mais maintenant je viens d'obtenir:
erreur INCONNU - ne pouvait pas exécuter ls -l - Aucun fichier ou répertoire
Même si c'était le cas, 'LANG = C ls -l' serait toujours une commande Windows invalide – ikegami
'ls' se trouve dans la fenêtre et j'ai changé la ligne LANG = C pour qu'elle soit juste ls -l mais je continue get an: ERREUR INCONNUE - impossible d'exécuter ls -l - Aucun fichier ou répertoire dans nagios mais si j'exécute la même commande à partir de l'invite de commande, cela fonctionne bien – mithrix
Vous devriez vérifier que 'ls' est sur le chemin depuis n'importe quel environnement Nagios est en cours d'exécution. Il peut être différent du chemin de la ligne de commande. –