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

Shell et commandes GNU Discussion :

Retour de commandes bash vers json/xml


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de Lekno
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    883
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 883
    Par défaut Retour de commandes bash vers json/xml
    Bonjour à tous, je travail sur une petite app me permettant d'administrer via ssh une ferme de serveur sous ubuntu,
    Je souhaite pouvoir automatiser mes commandes sur tout mes serveurs et pour que cela soit plus "facile" à traiter, je voudrai faire passer la sortie des commandes dans un format plus facilement manipulable (json ou xml)

    Pour illustrer cela j'utilise très régulièrement la commande "lsof -i -N -P" qui me retourne toutes les connections actives :

    Auriez-vous une idée de comment passer d'un "output" classique bash vers un format un peut plus manipulable ? (json, xml ou autres....)

    Une autre solution serai de rendre accessible toutes ces informations via une api dédié afin d'éviter tout la surcouche de commande via ssh puis de le traiter manuellement avec des script, si vous avez quelques idées la dessus ...

    merci

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    COMMAND   PID      USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    sshd     1306      root    3u  IPv4  54161      0t0  TCP *:22 (LISTEN)
    sshd     1306      root    4u  IPv6  54163      0t0  TCP *:22 (LISTEN)
    apache2  1431      root    4u  IPv6  18365      0t0  TCP *:80 (LISTEN)
    apache2  1435  www-data    4u  IPv6  18365      0t0  TCP *:80 (LISTEN)
    apache2  1436  www-data    4u  IPv6  18365      0t0  TCP *:80 (LISTEN)
    apache2  1437  www-data    4u  IPv6  18365      0t0  TCP *:80 (LISTEN)
    apache2  1438  www-data    4u  IPv6  18365      0t0  TCP *:80 (LISTEN)
    apache2  1439  www-data    4u  IPv6  18365      0t0  TCP *:80 (LISTEN)
    dhclient 5994      root    6u  IPv4  59801      0t0  UDP *:68
    sshd     6681      root    3u  IPv4  65725      0t0  TCP LABOVM.mtromain.local:22->10.0.0.99:38223 (ESTABLISHED)
    sshd     6683      root    3u  IPv4  65732      0t0  TCP LABOVM.mtromain.local:22->10.0.0.99:38224 (ESTABLISHED)
    sshd     6742  userlabo    3u  IPv4  65725      0t0  TCP LABOVM.mtromain.local:22->10.0.0.99:38223 (ESTABLISHED)
    sshd     6742  userlabo    9u  IPv6  65818      0t0  TCP localhost:6010 (LISTEN)
    sshd     6742  userlabo   10u  IPv4  65819      0t0  TCP localhost:6010 (LISTEN)
    sshd     6750  userlabo    3u  IPv4  65732      0t0  TCP LABOVM.mtromain.local:22->10.0.0.99:38224 (ESTABLISHED)
    sshd     6993   root       3u  IPv4  66306      0t0  TCP LABOVM.mtromain.local:22->10.0.0.99:38319 (ESTABLISHED)
    sshd     7024  userlabo    3u  IPv4  66306      0t0  TCP LABOVM.mtromain.local:22->10.0.0.99:38319 (ESTABLISHED)
      0  0

  2. #2
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Par défaut
    Quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lsof -i -N -P | awk ' $2 ~ /[0-9]/  { print "<process>\n\t<name>"$1"</name>\n\t<pid>"$2"</pid>\n</process>" } '
      2  0

  3. #3
    Membre chevronné Avatar de Lekno
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    883
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 883
    Par défaut
    super, c'est exactement ce que je cherchais, peux tu m'indiquer comment appel on cela ? Ca me fait penser un peut à du xml mais ca ne correspond pas tout à fait
    Je vais utiliser ton exemple pour le compléter suivant mon besoin, top
      0  0

  4. #4
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Par défaut
    Awk est simplement un langage de scripts qui permet de traiter ligne par ligne des documents textes.
    L'exemple est fictif mais il est facile de comprendre le mécanisme pour l'adapter.
      0  0

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Bonjour,

    reformater un tableau simple et sans ambiguïté vers une format plus complexe et pénible à parser tel que json ou xml...
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.
      1  0

  6. #6
    Membre chevronné Avatar de Lekno
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    883
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 883
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Bonjour,
    reformater un tableau simple et sans ambiguïté vers une format plus complexe et pénible à parser tel que json ou xml...
    xml et json plus complexe et pénible à parser que un tableau ? O0
      0  1

  7. #7
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Bonjour,

    reformater un tableau simple et sans ambiguïté vers une format plus complexe et pénible à parser tel que json ou xml...
    En quoi cette réponse fait avancer cette question ?

    Non Le monde ne tourne pas exclusivement autour du shell script ! Il y a énormément de situations au un format différent json/xml ... autre sera plus intéressant qu'un "simple" fichier texte.


    Cette sempiternelle bigoterie est particulièrement exaspérante
      0  2

Discussion fermée
Cette discussion est résolue.

Discussions similaires

  1. [Retour d'expérience] Migration vers une version de BCB
    Par Masmeta dans le forum C++Builder
    Réponses: 8
    Dernier message: 08/06/2007, 11h30
  2. [VBA EXCEL] Macro commande vba vers windows
    Par Lexot2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/04/2007, 12h05
  3. Réponses: 7
    Dernier message: 01/12/2005, 15h30
  4. Extraire des lignes d'un fichier en commande bash
    Par newnew dans le forum Linux
    Réponses: 3
    Dernier message: 27/07/2004, 16h22

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