Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/01/2008, 12h52   #1
r0d
Inscrit
 
Inscription : août 2004
Messages : 3 275
Détails du profil
Informations personnelles :
Localisation : Espagne

Informations forums :
Inscription : août 2004
Messages : 3 275
Points : 3 422
Points : 3 422
Par défaut récupérer des infos sur une application en cours d'exécution

Bonjour,

nous avons une application qui tourne sur différentes machines, et nous voudrions vérifier que toutes ces applications sont de la même version (même fichier exécutable).
Les problèmes sont que:
- l'exécutable présent sur la machine peut être différent de celui qui est en cours d'exécution.
- aucun système de version n'a été implémenté sur cette application.
- l'arrêt de cette application est lourde de conséquence, il s'agit donc de ne pas toucher les exécutions en cours
- nous n'avons pas accés aux source de l'appli.

Nous avons donc besoin de pouvoir différencier les différentes version de cette application uniquement à partir de son processus en cours d'exécution.

Je ne connais pas suffisemment l'environnement linux pour m'en sortir tout seul. Toute piste est la beinvenue.

Les systèmes cibles sont des Ubuntu (6 et 7).

Merci pour toute aide que vous pourrez m'apporter.
r0d.
r0d est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2008, 13h53   #2
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 779
Points : 7 779
si c'est le fichier binaire que vous voulez comparer alors c'est assez simple :

Code :
1
2
 
for i in machine1 machine2 machine3 ; do rsh $i cat /chemin/fichier | diff /chemin/fichierlocal - > /dev/null ; echo ------ $i : $? ------ ; done
ensuite il faudra brider autour de la mise en page pour mettre en forme le résultat bien sur.

typiquement si les binaires sont identiques alors on a aucun retour sauf la variable $? qui est à valeur zéro sinon à 1

Code :
1
2
3
4
5
6
7
>rsh potion cat /bin/ls | diff /bin/ls - > /dev/null
>echo $? 
0
>rsh potion cat /bin/ls | diff /bin/cp - > /dev/null
>echo $?
1
>
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2008, 14h00   #3
r0d
Inscrit
 
Inscription : août 2004
Messages : 3 275
Détails du profil
Informations personnelles :
Localisation : Espagne

Informations forums :
Inscription : août 2004
Messages : 3 275
Points : 3 422
Points : 3 422
Yop, merci pour te pencher sur le problème

cela dit, ce ne sont pas les fichiers binaires (que j'appelle exécutable) que je veux comparer, mais les processus en cours d'exécution. Car comme je l'ai dit dans ñon premier post, les fichiers binaires présents sur les machines peuvent être différents du programme en cours d'exécution.
r0d est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2008, 14h07   #4
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 779
Points : 7 779
alors il faut comparer le fichier binaire ouvert par le processus en cours d'execution (/proc/numeroprocessus/cmdline) j'ai complété la première réponse pour donner un exemple.

our le cas du processus en exécution maintenant
il suffit d'aller récupérer son chemin dans /proc/numero_processus/cmdline
et de faire la comparaison sur celui là bien sur.

par exemple on récupéré le nom du fichier vraiment ouvert par le processus 3073 comme ça :

Code :
1
2
3
4
5
 
>processus=`cat /proc/3073/cmdline`
>echo $processus
/usr/local/ap_cpt/bin/cal_mens
>
là même si il existe aussi un auter binaire cal_mens ailleurs sur la machine on fera la comparaison sur le bon (celui qui s'exécute) et pas sur un autre
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2008, 14h19   #5
r0d
Inscrit
 
Inscription : août 2004
Messages : 3 275
Détails du profil
Informations personnelles :
Localisation : Espagne

Informations forums :
Inscription : août 2004
Messages : 3 275
Points : 3 422
Points : 3 422
ok.

sinon j'ai vu que dans /proc/numeroprocessus, il y a un fichier 'stat'. Est-ce qu'on peut utiliser le contenu de ce fichier pour comparer? A quoi correspondent les chiffres de ce fichier?

r0d est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2008, 15h59   #6
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 779
Points : 7 779
le fichier stat c'est (par colones)

1- pid
2- com (nom d'executable)
3-state ( etat du thread R/S/D/Z/T/X)
4-ppid (parend proces id)
5-groupe de processus
6-session SID
7-...
etc... y'n a 39 comme ca... il faudrait consulter /proc & /sys un bouquin qui decrit tout ca bien plus complet que ma memoire....

bref pour comparer tu est cuit...y'aura trop de valeurs differentes ne serai ce que les ID SID PPID

....
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h19.


 
 
 
 
Partenaires

Hébergement Web