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 :

[bash] Requête SQL en SSH


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 12
    Par défaut [bash] Requête SQL en SSH
    Bonjour,
    Je cherche à faire un listing via une requête sql, le script est fonctionnel localement.
    Malheureusement par manque de connaissance, je n'arrive pas à le transposer en ssh, tout aide est la bienvenue ainsi que des conseils. Merci à vous



    Script local:
    Code : 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
     
    #!/bin/bash
    USERBD="bonjour"
    PASSBD="aurevoir"
    HOSTPATH="~/SCRIPTS/Fedora.txt"
    REMOTEUSER="x.x.x.x"
    REMOTEIP="x.x.x.x"
     
     
     echo -e "\n[Fedora-26]\n \n$(mysql -u $USERBD -p$PASSBD  -e "
    select glpi.glpi_computers.name
    from glpi.glpi_computers
    INNER JOIN glpi.glpi_operatingsystems
    on glpi.glpi_computers.operatingsystems_id = glpi.glpi_operatingsystems.id
    where glpi.glpi_computers.is_deleted=0 and glpi.glpi_operatingsystems.name='Fedora release 26 (Twenty Six)' and glpi.glpi_computers.name not like'FR%'
    order by glpi.glpi_computers.name;" | grep -ve "name")">>$HOSTPATH
    Tentative en ssh: infructueuse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ssh $REmoteusER@$REmoteIP '
    echo -e "\n[Fedora-26]\n \n$(mysql -u $USerBD -p$PAssBD  -e "
    select glpi.glpi_computers.name
    from glpi.glpi_computers
    INNER JOIN glpi.glpi_operatingsystems
    on glpi.glpi_computers.operatingsystems_id = glpi.glpi_operatingsystems.id
    where glpi.glpi_computers.is_deleted=0 and glpi.glpi_operatingsystems.name='Fedora release 26 (Twenty Six)' and glpi.glpi_computers.name not like'FR%'
    order by glpi.glpi_computers.name;" | grep -ve "name")">>$HostpaTH
    '

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

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ssh $REmoteusER@$REmoteIP <<eof
    printf '\n[Fedora-26]\n \n' >>"$HostpaTH"
    mysql -u $USerBD -p$PAssBD  -e "select glpi.glpi_computers.name
    from glpi.glpi_computers
    INNER JOIN glpi.glpi_operatingsystems
    on glpi.glpi_computers.operatingsystems_id = glpi.glpi_operatingsystems.id
    where glpi.glpi_computers.is_deleted=0 and glpi.glpi_operatingsystems.name='Fedora release 26 (Twenty Six)' and glpi.glpi_computers.name not like'FR%'
    order by glpi.glpi_computers.name;" | grep -ve "name">>$HostpaTH
    eof
    ?

    comment se fait-il que tu utilises un grep derrière ta requête ? mysql devrait te permettre de faire cette sélection supplémentaire, non ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 12
    Par défaut
    Bonjour,
    Merci beaucoup pour ton aide,
    L'utilisation du grep est sûrement du au manque de connaissance de ma part, l'idée était exporter le résultat dans mon fichier inventaire ANSIBLE. Sous MySQLworkbench, le résultat était propre mais sous cli, il y avait la valeur name qui apparaissait d'ou le grep -ve.
    En ce qui concerne pour le script, il est presque opérationnel, la partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf '\n[Fedora-26]\n \n' >>"$HostpaTH"
    >>Pseudo-terminal will not be allocated because stdin is not a terminal. Je vais essayer de chercher par moi même mais merci de ton temps

    J'ai trouvé mon bonheur, voila et merci pour tout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ssh -T  $REmoteusER@$REmoteIP <<eof
    echo -e '\n[Fedora-26]\n \n' >>$HostpaTH
    mysql -u $USerBD -p$PAssBD  -e "select glpi.glpi_computers.name
    from glpi.glpi_computers
    INNER JOIN glpi.glpi_operatingsystems
    on glpi.glpi_computers.operatingsystems_id = glpi.glpi_operatingsystems.id
    where glpi.glpi_computers.is_deleted=0 and glpi.glpi_operatingsystems.name='Fedora release 26 (Twenty Six)' and glpi.glpi_computers.name not like'FR%'
    order by glpi.glpi_computers.name;" | grep -ve "name">>$HostpaTH
    eof

  4. #4
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Par défaut
    Pourquoi ne pas créer un script sur ton serveur et l'appeler via ssh plutot que de passer une commande géante(dure à échapper) ?
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 12
    Par défaut
    Pourquoi ne pas créer un script sur ton serveur et l'appeler via ssh plutot que de passer une commande géante(dure à échapper) ?
    Sûrement par masochisme. C'est juste que je veux éviter les dépendances ainsi la personne qui exécute le script après moi ne se posera pas la question si sur tel server, il y a bien l'existance de tel bout de script etc. Et puis je suis toujours en phase apprentissage donc j'essaye de bouger mon popotin.

  6. #6
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Par défaut
    Tu peux faire un script sur ta machine qui pousse un script sur l'hôte puis l'exécute puis le supprime. Tu auras beau te tortiller, tu auras quand même des dépendances. La vraie question est de comment avoir conscience d'elles et comment les gérer.

    Si tu veux aller plus loin dans l'automatisation, ansible est intéressant. Il te permettrait de t'appuyer sur des méthodes éprouvées/maintenus/standards et de te construire au fur et à mesure des briques de maintenance réutilisable/paramétrables.

    Joli pseudo.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 15/10/2017, 13h35
  2. Insérer une variable Bash dans une requête sql
    Par Acidix dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 16/02/2015, 20h39
  3. Echappement *.* dans requête SQL en bash
    Par MAX3315 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 20/10/2014, 17h53
  4. requêtes SQL sur une serveur distant via SSH
    Par mamax29 dans le forum SGBD
    Réponses: 2
    Dernier message: 16/12/2011, 13h28
  5. récupérer résultat d'une requête SQL en bash
    Par Milo59000 dans le forum Linux
    Réponses: 10
    Dernier message: 08/09/2008, 10h13

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