Script Bash et commandes Mysql

Bonjour,

je cherche a faire un script bash qui se connecte a Mysql puis qui execute des commandes. Voici le début de mon script

#! /bin/bash

DIRS="/chemin"
LOGSQL="${DIRS}/monlog.log"
FISQL="${DIRS}/masortie.sql"
echo "use mabase;select * from matable;" > ${FISQL} | mysql --user="$USERMYSQL" --password="$PASSMYSQL" || echo "Echec de connexion a mysql > ${LOGSQL}"

apres execution du script :

j'ai un souci avec
echo "use mabase;select * from matable;" > ${FISQL}


En effet mon fichier ${FISQL} contient : echo "use mabase;select * from matable;"

au lieu de contenir le résultat de mon select

y a un truc que je comprends pas.

Une idée?

Merci
--
L'accès au savoir est la première liberté que chaque homme devrait avoir.
Configuration: Linux
Mozilla 1.9.0.7

10 réponses

  1. in=$(mysql -p****** -e "use mabase;select * from matable;" -E)
    echo "$in" > ${FISQL}

    ??
    1. Contributeur
      hello
      echo "use mabase;select * from matable;" | mysql --user="$USERMYSQL" --password="$PASSMYSQL" > ${FISQL} || echo "Echec de connexion a mysql > ${LOGSQL}"
      1. Bonjour,

        merci beaucoup a vous deux. Une autre petite question si je veux inseré un fichier qui contient des lignes d'insert :

        Insert matable (sf,dfs,sdfs) values ('4','hhjhhlhkl','jhhg');
        Insert matable (sf,dfs,sdfs) values ('4','hhjhhlhkl','jhhg');
        Insert matable (sf,dfs,sdfs) values ('4','hhjhhlhkl','jhhg');
        Insert matable (sf,dfs,sdfs) values ('4','hhjhhlhkl','jhhg');
        Insert matable (sf,dfs,sdfs) values ('4','hhjhhlhkl','jhhg');


        comment dois je procedé?

        Merci
        1. Contributeur
          insérer dans la base ?
          cat fichier | mysql ...
          et tu peux mixer les commandes
          (echo "use mabase;select * from matable;" ; cat fichier) | mysql ...
          1. Merci encore dubcek. J'ai donc suivi ce que tu m'indiques :

            echo "use mabase;";cat ${LISTFILE} | mysql --user="login" --password="pass" > ${FILESQL} || echo "Echec de connexion a mysql > ${LOGMYSQL}"
            


            mais j'ai l'erreur suivante :
            use mabase;
            ERROR 1046 (3D000) at line 1: No database selected
            Echec de connexion a mysql > /chemin/errormysql.log

            Puis je encore abusé de tes connaissances et juste si tu connais me dire comme dois je m'y prendre pour me connecter en ssh depuis mon script.

            En faites pour tous te dire, j'essaie de créer un script qui se lance sur la machine A et qui se connecte a une base postgresql pour avoir le resultat d'un select dans un fichier puis je traite ce fichier avec SED pour formater mes lignes d'insert puis je dois importé ce fichier dans une base Mysql qui est sur la machine B(connexion SSH) .

            Merci
            1. Pardon dubcek ne tiens pas compte de l'erreur c'est ok j'avais fait n'importe quoi. Par contre pour la suite si quelqu'un a une idée je suis preneur.

              Merci
              1. Contributeur
                je dirais mettre les commandes dans un script et
                ssh user@hostname script
                1. En faites non car je souhaite que tout soit automatisé dans mon script ainsi que la connexion SSH. Si j'ai compris ce que tu m'explique dans ta solution je dois saisir la connexion ssh.

                  Merci
                  1. Contributeur
                    non, le ssh peut être dans un script qui s'exécute sur A, au retour du ssh l'exécution continue sur A