IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

récupérer des infos sur une application en cours d'exécution


Sujet :

Administration système

  1. #1
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 266
    Points : 6 688
    Points
    6 688
    Billets dans le blog
    2
    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.

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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 : 5 196
    Points : 12 262
    Points
    12 262
    Par défaut
    si c'est le fichier binaire que vous voulez comparer alors c'est assez simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    >

  3. #3
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 266
    Points : 6 688
    Points
    6 688
    Billets dans le blog
    2
    Par défaut
    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.

  4. #4
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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 : 5 196
    Points : 12 262
    Points
    12 262
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 266
    Points : 6 688
    Points
    6 688
    Billets dans le blog
    2
    Par défaut
    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?


  6. #6
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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 : 5 196
    Points : 12 262
    Points
    12 262
    Par défaut
    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

    ....

Discussions similaires

  1. [RegEx] Récupérer des infos sur une page externe
    Par kevinf dans le forum Langage
    Réponses: 1
    Dernier message: 29/10/2008, 08h28
  2. Réponses: 6
    Dernier message: 04/09/2008, 19h17
  3. Récupérer des infos sur une page externe
    Par Horrigan dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 20/07/2006, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo