Extraire et renvoyer et la liste des process > compteur ou un log

Extraire et renvoyer et la liste des process > compteur ou un log - Perl - Programmation

Marsh Posté le 08-03-2005 à 09:16:54    

Salut à tous,
 
J'ai besoin pour le taf de comptabiliser les logiciels Adobe en cours d'utilisation sur l'ensemble du parc Mac & Windaube. Nous avons un nombre de licences flottantes à ne pas dépasser. Les licences flottantes permettent d'installer une appli sur toutes les machines et de n'acheter que quelques licences seulement.
 
Il ne faut pas que le nb max d'utilisateurs simultanés d'une appli dépace le nb de licences acquises.
 
Voilà il me faut donc juste le pic maximum d'utilisations simultanées pour Photoshop, Illustrator, Acrobat ... pour pouvoir réévaluer le nombre de licences flottantes à acheter.
 
 
Le script sur les clients doit donc, remonter un signal sur une machine du réseau à chaque fois que l'utilisateur lance une des application Adobe sous licence flottante.
 
On incrémente un compteur (à chaque appli son compteur) et on le décrémente lorsque le logiciel a été quitté.
 
On peut aussi mettre un timeout qui retire 1 si le poste client n'a pas envoyé de signal "appli ouverte" depuis 5 min par exemple, ou que le logiciel a été fermé.
 
ou faire l'inverse (ce qui est mieux à mon avis): aller re-interroger les postes qui ont envoyé un signal 'Appli AdobeTruc ouverte' pour vérifier que l'appli est toujours ouverte. (vérif. toutes les 5 mins par ex)
 
Qu'est ce que sera le mieux selon vous ? :??:  
 
 
RAPPEL:
 
Il me faudra faire 2 fonctions séparées (une pour Windows et une pour Unix (enfin MacOS).
 
J'ai vu que sous Unix (MacOS) on peut utiliser la commande `ps -x | grep Adobe` qui me liste tous les process en cours dont le titre contient Adobe. Je peux donc me servir de cette commande pour extraire l'Heure et le nom de l'appli.
 
[postemac:~] user% ps -x | grep Adobe
415 ?? S 0:14.41 /Volumes/Applications/dossier Appli OS X /Adobe Photoshop 7/Adobe Photoshop 7.0/Contents/MacOS/Adobe Photos
474 std R+ 0:00.00 grep Adobe
 
et pour les Windows, j'ai appris que sous python on peux utiliser çà pour récupérer les process:
 
 import win32api, win32con, win32process
 processes = win32process.EnumProcesses() # get PID list
 
 
Je reformule mon besoin :
 

  • Si une appli démarre sur un poste > un signal rajoute 1 au nb de licences actuellement utilisées
  • Si une appli est fermée > un signal décrémente de 1 le nb de licences utilisée
  • Si un client interrogé ne répond plus ou que la liste de ses process ne contient plus l'appli > on décrémente de 1 aussi.


Pourriez-vous m'aider à commencer à coder tout çà.
 
Merci d'avance.
 
Pierrero.  :hello:  
 


Message édité par Marc le 06-02-2006 à 23:18:27
Reply

Marsh Posté le 08-03-2005 à 09:16:54   

Reply

Marsh Posté le 08-03-2005 à 10:19:27    

Salut,
 
Compteur ou log ? Tout dépend de tes besoins
Personnellement je te conseillerais un log -> tu traces tout ce qui se passe, et tu analyses "off-line" en consolidant les données de toutes les machines
 
Par contre analyser les process me semble casse-cou, car tu devras boucler pour regarder les process à intervalles réguliers, mais qui te dit qu'un utilisateur n'ait pas lancé une appli Adobe, puis l'a fermé entre temps ?
 
Nota : quand tu fais un "ps" il faut enlever le process "grep" associé
Exemple sous unix : "ps -ef | grep Adobe | grep -v grep"
Le mieux est de faire sous Perl :

Code :
  1. @list_process_adobe = grep /Adobe/,`ps -ef`;


tu obtiendras une liste des process contenant le mot-clé Adobe

Reply

Marsh Posté le 08-03-2005 à 10:34:37    

tu peux arrêter le flood s'il te plait

Reply

Marsh Posté le 08-03-2005 à 10:52:13    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed