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 :

Problème de lecture de fichier et connexion ssh


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2021
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème de lecture de fichier et connexion ssh
    Bonjour !

    J'essaye de tester un script que j'ai fait. Ce script prend en compte des entrée manuelles avec la commande "read". Pour automatiser mon test, j'utilise des données présentes dans un fichier de données avec la commande "cat" : cat <fichier_de_données> | ./mon_script
    Dans mon script, j'utilise des commandes ssh pour me connecter à un pc distant.
    Mon problème, et je ne comprends absolument pas pourquoi, est que le script ne prend plus ne compte les données dans le fichiers de données (avec la commande read) une fois qu'une commande ssh soit exécutée.

    Voici le contenu de mon fichier de données ainsi qu'une version simplifiée de mon script pour que ce soit plus compréhensible :

    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
    20
    21
    22
    23
    24
    25
    26
     
    $ cat fichiercom
    pass123
    fichier_sup
     
    $ cat fichiercom | sh -v -x ./essai.sh
    #!/bin/sh
    read pass
    + read pass
    echo "mdp : " $pass
    + echo mdp :  pass123
    mdp :  pass123
    i=$(sshpass -p $pass ssh $USER@10.2.20.5 du -s /home/$USER/fichiers | cut -f 1 -d "/")
    + cut -f 1 -d /
    + sshpass -p pass123 ssh etu1@10.2.20.5 du -s /home/etu1/fichiers
    + i=2000036
    echo "$i"
    + echo 2000036
    2000036
    read file
    + read file
    echo "fichiers : " $file
    + echo fichiers :
    fichiers :
    echo
    + echo
    On peut voir que la variable file est vide alors qu'elle devrait prendre comme valeur "fichier_sup".

    Je n'ai rien trouvé lié à cela sur internet.

    C'est la première fois que je poste sur un forum, je ne suis pas sûr que mon message est sa place ici mais je tenter quand même.

    J'espère que vous saurez m'aider !

    Merci beaucoup.

  2. #2
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 280
    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 280
    Points : 12 729
    Points
    12 729
    Par défaut
    Bonjour,

    Déjà, que donne la commande wc -l fichiercom ?

    Juste pour être sur que tu as bien au moins 2 lignes dans ton fichier et non pas 1 ligne + 1 ligne non finie (donc incomplète).
    Cordialement.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2021
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $ wc -l fichiercom
    3 fichiercom

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    Et si tu mets tous les read au début du script, cela fonctionne-t-il ? Comme ça, c'est fait. Aucune autre commande ne peut interférer avec l'entrée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    read pass
    read file
    echo "mdp : " $pass
    (...)
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  5. #5
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 280
    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 280
    Points : 12 729
    Points
    12 729
    Par défaut
    En fait, je pense qu'il n'a pas trop le choix, car normalement, faudrait qu'il utilise ssh avec l'option -n pour que celui-ci redirige stdin vers /dev/null mais en faisant ça, je pense qu'il ne pourra pas passer le mots de passe...

    En gros, c'est le serpent qui se mord la queue
    Cordialement.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 389
    Points
    19 389
    Par défaut
    pourquoi le "fichier de configuration" n'est-il pas lu à l'intérieur du script, au lieu d'en verser le contenu par un pipe externe ?

    avoir un mot de passe en clair dans un fichier ou dans un script est une mauvaise pratique.
    et ce n'est pas parce que certains outils permettent de le faire que c'est correct.
    il est préférable de préalablement échanger les clés publiques.

    je n'utiliserais pas du pour obtenir la taille d'un fichier, mais plutôt stat dont la sortie est paramétrable (ça évite de recourir à cut).
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. [POI] Problème de lecture des fichiers Word
    Par Dari dans le forum Documents
    Réponses: 9
    Dernier message: 05/07/2007, 14h08
  2. Problème de lecture sur fichier ini.
    Par braoru dans le forum Delphi
    Réponses: 2
    Dernier message: 28/07/2006, 15h34
  3. [DOM4J] Problème de lecture de fichier xml avec dom4j
    Par santana2006 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 05/04/2006, 16h52
  4. Problème de lecture de fichier Excel
    Par cocaetjusdorange dans le forum Langage
    Réponses: 4
    Dernier message: 08/02/2006, 11h08
  5. Problème de lecture de fichier Oracle 9.2
    Par fortlow dans le forum Oracle
    Réponses: 4
    Dernier message: 14/11/2005, 16h48

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