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. 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
    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
        je dirais mettre les commandes dans un script et
        ssh user@hostname script
        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. 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. 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. 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
                  hello
                  echo "use mabase;select * from matable;" | mysql --user="$USERMYSQL" --password="$PASSMYSQL" > ${FISQL} || echo "Echec de connexion a mysql > ${LOGSQL}"
                  1. in=$(mysql -p****** -e "use mabase;select * from matable;" -E)
                    echo "$in" > ${FISQL}

                    ??