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 :

Commande qui s'exécute en ligne de commande mais pas en script


Sujet :

Shell et commandes GNU

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 34
    Par défaut Commande qui s'exécute en ligne de commande mais pas en script
    Bonjour,

    Je précise d'abord que je suis suis débutant en bash mais j'ai queques notion en linux. J'aimerais réaliser un script qui envois un script sql générer par mon serveur 1 vers mon serveur 2 puis qu'il soit exécuté sur mon serveur 2. Mon problème est que mon script ne fonctionne pas du tout mais quand j'essaye chaque ligne de commande à la main, tout fonctionne parfaitement. Le script s'exécute depuis le serveur 2.
    Au niveau des erreur j'ai cela:
    ->Name or service not knownname (pour la ligne 10)

    ->$'logout\r' : commande introuvable (pour la ligne 16)

    ->Aucun fichier ou dossier de ce type (pour la ligne 19)


    J'espère avoir été assez précis dans mes explication

    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
    17
    18
    19
    #!/bin/bash
     
    #variable du script
    user="utilisateur"
    Serveur1="serveur1"
    Serveur2="serveur2"
    DATE=`date "+%Y%m%d"`
     
    #connexion au serveur 1 en ssh
    ssh -p 22 $user@$Server1
     
    #transfert du dump vers le serveur 2
    scp /application/tmp/script_$DATE.sql $user@$Serveur2:/application/tmp
     
    #Fermeture de la session ssh
    logout
     
    #Exécution du script
    psql -h monserveur2 -U postgres -d mabase < /application/tmp/script_$DATE.sql

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 134
    Par défaut
    A première vue, ton script shell a été édité sous Windows... avec les caractères de fins de lignes correspondants.
    Commence par supprimer les \r à chaque fin de ligne et réessaye
    (Si ton éiteur ne le permet pas simplement, la commande dos2unix fera ça très bien)
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 34
    Par défaut
    Merci pour ta réponse. Effectivement j'ai réaliser mon script avec Notepad ++
    Je vais essaye ce que tu me propose et je reviens vers toi si cela a fonctionner au non

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 34
    Par défaut
    J'ai fait ce que tu m'a conseiller et je n'ai plus les erreurs avec le "/r" mais ma commande ssh ne fonctionne toujours pas dans mon script. Manuellement j'arrive à bien me connecter au serveur 1

  5. #5
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    Bonjour

    ->Name or service not knownname (pour la ligne 10)
    Si tu tapes n'importe quoi comme serveur 1, tu obtiens le même message d'erreur.
    C'est donc qu'il ne trouve pas ton serveur 1 car tu lui as mal indiqué ou qu'il est inaccessible.

    #Fermeture de la session ssh
    logout
    Là, tu te leurres.
    Ta session ssh est finie depuis longtemps.
    C'est le shell courant que tu vas fermer.

    Ce n'est pas comme cela qu'on fait une session ssh.
    Tu devrais relire ton tutoriel.
    Si tu n'en as pas lu, c'est le moment de le faire.

    #Fermeture de la session ssh
    logout

    #Exécution du script
    psql -h monserveur2 -U postgres -d mabase < /application/tmp/script_$DATE.sql
    Tu exécutes la requête après t'être déconnecté ?

  6. #6
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 101
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 101
    Par défaut
    Citation Envoyé par Kikibolderiz Voir le message
    ->Name or service not knownname (pour la ligne 10)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Serveur1="serveur1"
    #connexion au serveur 1 en ssh
    ssh -p 22 $user@$Server1
    Tu te moques de nous ou c'est pour nous tester

  7. #7
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 342
    Par défaut
    Mais non, c'est à cause du monde windows tout ça (celui-ci se fout complètement de la casse)...

  8. #8
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 34
    Par défaut
    Si tu tapes n'importe quoi comme serveur 1, tu obtiens le même message d'erreur.
    C'est donc qu'il ne trouve pas ton serveur 1 car tu lui as mal indiqué ou qu'il est inaccessible.
    Le problème c'est que la commande ssh marche parfaitement quand je l'exécute en ligne de commande mais dans le script elle ne fonctionne (et j'ai bien utiliser les mêmes identifiants)


    Là, tu te leurres.
    Ta session ssh est finie depuis longtemps.
    C'est le shell courant que tu vas fermer.


    Ce n'est pas comme cela qu'on fait une session ssh.
    Tu devrais relire ton tutoriel.
    Si tu n'en as pas lu, c'est le moment de le faire.
    Si j'ai bien compris, la session ssh se referme dès que le script va à la ligne?
    Mon code donnerais cela non?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #connexion au serveur 1 en ssh et transfert du script sql vers le serveur 2
    ssh -p 22 $user@$Server1 'scp /application/tmp/script_$DATE.sql $user@$Serveur2:/application/tmp'

    Tu exécutes la requête après t'être déconnecté ?
    En faite la commande psql est exécuté sur mon serveur 2 (là ou est exécuté le script). La commande ssh est la pour pouvoir me connecter au serveur 1 pour envoyer le script sql sur mon serveur 2.

  9. #9
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 34
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Tu te moques de nous ou c'est pour nous tester
    Non je n'oserais jamais . J'ai dû modifier certaines variables et paramètres pour cause de confidentialité

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 644
    Par défaut
    on va le mettre en plus gros, ce sera plus visible :
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  11. #11
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 34
    Par défaut
    J'esssaye de voir ce qui ne va pas avec la commande ssh quand je l'utilise en ligne de commande et :

    Cette commande fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh -p 22 utilisateur@serveur1
    Cette commande ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh -p 22 utilisateur@serveur1 'scp /application/tmp/script_20190214.sql utilisateur@serveur2:/application/tmp'
    elle m'affiche l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Host key verification failed.
    lost connection

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 644
    Par défaut
    tu fais un ssh depuis le serveur2 vers le serveur1 pour faire un scp vers le serveur2 ???
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  13. #13
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 34
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    tu fais un ssh depuis le serveur2 vers le serveur1 pour faire un scp vers le serveur2 ???
    J'ai dis dès le début que j'étais un débutant en bash
    Il n'est pas nécessaire d'être d'abord connecter au serveur 1 pour faire une commande scp vers le serveur 2?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 644
    Par défaut
    non. tu inities le scp depuis la machine locale :scp user@machineDistante:/cheminSource /cheminDestination/
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  15. #15
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 34
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    non. tu inities le scp depuis la machine locale :scp user@machineDistante:/cheminSource /cheminDestination/
    Merci, sa fonctionne parfaitement

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

Discussions similaires

  1. Tomcat qui demarre en ligne de commande mais pas sous eclipse
    Par ancolie59 dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 20/07/2018, 17h06
  2. [Batch] WMIC.EXE OK en ligne de commandes mais pas en BATCH : Demande non valide
    Par waici dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 25/01/2013, 10h24
  3. [ODBC] Connection fonctionne avec ligne de commande mais pas sur site
    Par maxeur dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/03/2010, 14h33
  4. Réponses: 1
    Dernier message: 06/08/2009, 15h13
  5. Réponses: 2
    Dernier message: 09/10/2007, 11h31

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