View Full Version : Compter le nombre de fichier dans un répertoire
titou
05-22-2007, 01:16 PM
Bonjour,
Quelqu'un aurait-il une idée pour faire un check permettant de compter le nombre de fichiers dans un répertoire précis sur une machine windows ? Et mettre une alerte lorsque un certain nombre est atteint ?
Voir même si cela est possible pour un type de fichier déterminé.
Par exemple si le répertoire contient plus de 100 fichier *.log ...
Merci à vous ;)
Hum ... le but c'est de faire quoi après ? parceque si tu te dis que tu as 100 fichiers de log -> CRITICAL -> donc on archives a la mimine.... autant faire un script sur ta machine pour faire un "logrotate"
Mais sinon, NRPE et tu lance un scripts shell qui compte t'es fichiers.
titou
05-22-2007, 04:04 PM
Salut,
Merci pour ton aide.
En fait j'ai un répertoire dans lequel un logiciel dépose des fichiers. Chaque fichier correspond à un message. Un autre logiciel vient dans ce répertoire lit chaque fichier, le traite et le supprime. Il doit, en fonctionnement normal, n'y avoir que très peu de fichier restants.
Mon but est donc de m'assurer qu'il reste moins de 50 fichiers à traiter sinon cela veut dire que mon second logiciel ne traitre pas les fichiers.
Voilà exactement ma problématique. Et cela sous windows.
J'ai fais ca sous UNIX (AIX et solaris) avec NRPE en exécutant un script shell mais sous windows ..... je sèche comme on dit.
Pour ma machine sous windows 2003 j'utilise op5 nsclient++.
merci.
mezekiss
05-22-2007, 04:29 PM
Salut ta de la chance je viens de mettre en place ce type d'action ce matin apres 4 heure de galere.
Il te faut installer NRPE 2.8.1 sur ta machine NAGIOS dans le dossier root. Ensuite il te faut le dezipper tar xvfz nrpe-2.8.1.tat.gz puis taper ./configure --disable-ssl , ensuite make all. Tu verras un nouveau fichier dans ton dossier de plugins: check_nrpe
Installe aussi xinetd. Si t sous debian: apt-get xinetd. Tu devras modifier le fichier nrpe en ajoutant à only_from = 127.0.0.1 Adresse_IP_de_ta_machine_NAGIOS Adresse_ip_de_la_machine_supervisee. Tu devras aussi editer le fichier services se trouvant dans /etc/ en y ajoutant a la fin nrpe 5666/tcp # NRPE
Par la suite il te faudra installer sur la machine que tu veux superviser le NRPE_NT (nrpe_nt.0.8b-bin-NoSSL.zip). Decompresse le et met le a la racine du C: (ex:c:\nrpe\).
Telecharge sur Nagios Exchange le fichier: "directory_file_count.zip" et decompresse dans un dossier plugins par exemple dans le repertoire (c:\nrpe\plugins).
Edite le fichier nrpe.cfg dans le dossier c:\nrpe\bin\ et rajoute ce code a la fin:
allowed_hosts=ADRESSE_IP_SERVEUR_NAGIOS
command[directory_file_count]=c:\windows\system32\cscript.exe //NoLogo //T:30 c:\nrpe\plugins\directory_file_count.wsf LA_PARTITION LE_DOSSIER_CONTENANT_LES_FICHIERS LE_WARNING LE CRITIQUE
Exemple: command[directory_file_count]=c:\windows\system32\cscript.exe //NoLogo //T:30 c:\nrpe\plugins\directory_file_count.wsf c: \\TMP\\ 5 10
POUR CONCLURE: Ouvre une fenetre cmd , tape le chemin ou se trouve le fichier NRPE_NT.exe, ensuite tape nrpe_nt.exe -i ENFIN net start nrpe_nt
J'espere t'avoir aider.
titou
05-22-2007, 05:45 PM
ok je vais essayer ca de suite ... merciiiiiiiiiiiiiii
titou
05-23-2007, 11:43 AM
Salut,
Je tombe sur un nouveau problème .. visiblement le service nrpe utilise le même port que mon client nsclient++ et lors du démarrage du service nrpe j'ai une erreur sur le bind.
On dirait bien donc que je ne peux utiliser qu'un seul client sur ma machine windows ... soit nrpe soit nsclient++
je continue ma recherche.
Merci encore ....
@+
wistof
05-23-2007, 12:32 PM
hello,
Nsclient++ peut aussi fonctionner en NRPE. décommente la ligne
;NRPEListener.dll de ton fichier NSC.INI.
Tu peux aussi modifier le port d'ecoute du module NRPE de nsclient++ :
[NRPE]
;# NRPE PORT NUMBER
; This is the port the NRPEListener.dll will listen to.
port=xxxet puis tu rajoutes des commandes NRPE dans NSC.INI :
[NRPE Handlers]
;# COMMAND DEFINITIONS
;# Command definitions that this daemon will run.
;# Can be either NRPE syntax:
check_cpu=inject checkCPU warn=50 crit=70 time=1m time=5m time=15m
check_mem=inject checkMem MaxWarn=75% MaxCrit=85% ShowAll
check_my_service=inject checkServiceState my_service
check_my_script=cscript //NO "D:\myscript.vbs" $ARG1$ $ARG2$ $ARG3$
pour autoriser les arguments sur NRPE :
[NRPE]
allow_arguments=1dsl, c'est un peu décousu, mais j'ai pas trop le temps
titou
05-24-2007, 10:59 AM
Merci wistof
J'ai fait comme tu m'as indiqué et j'ai pas mal avancé mais j'ai une erreur dans oreon.
Mon check nrpe fonctionne bien en local sur ma machine windows 2003 donc de ce côté c'est ok.
Par contre dans oreon/nagios j'ai l'erreur CHECK_NRPE: Error receiving data from daemon.
...
une idée please ?
merci à tous !
wistof
05-24-2007, 12:01 PM
Hello,
as tu activé le debug sur ton nsclient ?
regarde aussi du coté de la liste de restriction ip du daemon nrpe/nsclient
[Settings]
allowed_hosts=127.0.0.1,192.168.0.2
titou
05-24-2007, 01:46 PM
CA MAAAAARCHEEE !!!!!
Et là c'est ma faute ... j'avais laissé l'option ssl à 1 alors que ne l'utilise pas !
Tout est ok :D
Merci encore à tout le monde.
J'ai donc utilisé comme wistof et mezekiss le disaient nsclient++ en nrpe sur ma machine windows 2003 avec le script directory_file count.
Je suis ravi ;)
querwin
10-11-2007, 05:34 PM
Tu devras modifier le fichier nrpe en ajoutant à only_from = 127.0.0.1 Adresse_IP_de_ta_machine_NAGIOS Adresse_ip_de_la_machine_supervisee
Au risque de passer pour une bille je vois pas de quelle fichier on parle à cet endroit la. si quelqu'un pouvait me renseigner.
Merci