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

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

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

Salut à tous,
 
J'ai aussi posté dans la rubrique Perl et je m'en excuse d'avance. :o
 
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 pierrero le 08-03-2005 à 10:59:48
Reply

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

Reply

Marsh Posté le 08-03-2005 à 10:04:07    

ben c'est bête et méchant, t'as juste à surveiller la liste de tous les processus et compter. C'est stupide, inefficace, mais ça fonctionne. Si ton nombre d'appli est bien défini, tu peux empaqueté chaque appli dans un script, le script envoyant un paquet udp au lancement de l'appli et un autre à la fermeture. Ou bien, tu lui fais envoyer un paquet UDP toutes les minutes.  Ça me parait simple à implémenter et très économe en ressource (réseau et CPU). C'est ce que je ferais.

Reply

Marsh Posté le 08-03-2005 à 10:11:31    

Taz a écrit :

tu peux empaqueté chaque appli dans un script, le script envoyant un paquet udp au lancement de l'appli et un autre à la fermeture. Ou bien, tu lui fais envoyer un paquet UDP toutes les minutes.  Ça me parait simple à implémenter et très économe en ressource (réseau et CPU). C'est ce que je ferais.


 
OK c'est cool ! çà avance ! :pt1cable:  
 
Tu m'expliques comment coder l'envoi de ce "paquet UDP" sur une machine du réseau stp ? :??:

Reply

Marsh Posté le 08-03-2005 à 10:17:49    

pydoc socket

Reply

Marsh Posté le 08-03-2005 à 10:53:01    

pierrero a écrit :

J'ai aussi posté dans la rubrique Perl et je m'en excuse d'avance. :o


t'as pas à t'en excuser, t'as juste à pas le faire ...
 
je close l'autre topic.
 
remarque : c'est pas une bonne idée de laisser ton adresse mail : elle risque de se retrouver rapidement dans les listes des spammers


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 08-03-2005 à 11:03:42    

J'ai fait quelque recherche sur gogole concernant "pydoc socket" et çà m'a l'air intéressant. Je continue à mettre mes avancées sur le problème pour que çà puisse aider d'autres pers.
 
Merci Taz

Reply

Marsh Posté le 08-03-2005 à 11:06:03    

mais pas dans google triste sire

Reply

Marsh Posté le 08-03-2005 à 11:16:06    

Taz a écrit :

mais pas dans google triste sire


 
Euh oui je crois que tu n'as pas idée de mon niveau :(
 
Me mettre maintenant au développement, c'est comme de me mettre sur un vélo trop grand pour moi alors que j'en avais fait que gosse et avec des roulettes.
Là c'est google mes roulettes et depuis 2 jours c'est vous :love:
 
Je me mets à Python du coup. Si çà permet vraiment de scripter comme ou mieux que perl çà sera pas du temps de perdu.
 
J'ai déjà eu de bonnes pistes ici pour m'y mettre. Merci :)
 
Et euh, ah oui:  
Dsl pour le double post Perl+Python ! Je n'était pas sûr de savoir vers quel langage m'orienter.
Mille excuses :jap:
 
Pierrero


Message édité par pierrero le 08-03-2005 à 11:18:04
Reply

Marsh Posté le 08-03-2005 à 11:20:47    

python ça marche très bien. Dans le cadre professionel, j'ai déjà fait quelque chose comme ça. Il s'agissait de monitorer plusieurs dizaines de machines. Le client en C ultra-léger envoie toutes les minutes des informations systèmes (charge utile 40octets). Le serveur python réceptionne tout ça. Ça tournait super bien. Le client C était minimal et incassable, le serveur python robuste (gaffe aux paquets UDP  avec une charge utile mal formée, ça peut arrivé surtout si tu as plusieurs versions de ton client). Le serveur archive en même temps dans une base de données en asynchrone. Ç'est faisable et ça prend très peu de lignes. Maintenant si c'est pas ton métier, et bien embauche quelqu'un. Sinon rame.

Reply

Sujets relatifs:

Leave a Replay

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