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 :

Copier un fichier d'une machine à une autre


Sujet :

Shell et commandes GNU

  1. #1
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut Copier un fichier d'une machine à une autre
    Salut a tous,
    j´ai un petit probleme, je suis debutant en shell, et j´ai eu comme pour devoir de : Copier un fichier situer dans une machine C en passant par par une machine B.
    car la machine A ou je me trouve ne peut pas acceder a la machine C ou se trouve le fichier.
    Est ce que quelqu´un peut m´aider a resourdre ce probleme. en faisant ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      scp user@C:/dev/fichier.txt ./tmp/
    mais le probleme c´est que je voudrais savoir quand est ce la premiere copie est terminée avant de transferer de la machine B a la machine A.

    Merci
    A tous.

    Eric

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2009
    Messages : 44
    Points : 53
    Points
    53
    Par défaut
    Salut ;
    Tu es connecté sur A, et tu veux avoir un fichier qui se trouve sur C mais tu n'as pas l'accès au C.. Alors, tu n'as pas besoin de B, il faut juste piraté C
    Sinon, expliques mieux : cas réel, commandes tapées réellement sur le shell, adressage et topologie réels, captures d'écran, ...etc.

    Merci.

  3. #3
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    c´est exactement ce que je veux faire, sans pirater .
    Je suis sur la machine A.
    j´accede bien a la machine B
    la machine B accede a la machine C la ou se trouve mon fichier.

    Merci.

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par jeffray03 Voir le message
    mais le probleme c´est que je voudrais savoir quand est ce la premiere copie est terminée avant de transferer de la machine B a la machine A.
    La première copie est terminée quand la commande qui l'a lancée rends la main, et que la ligne suivante peut donc être exécutée.

    Si tu ne met pas de taches en arrière plan, il n'y a pas besoin de gérer le séquencement des taches, elles s’enchaînent simplement l'une après l'autre.

  5. #5
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    @jlliagre Merci
    c´est ce que je suis en train de tester.
    Je vous tiens au courant.

    Eric

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 720
    Points : 31 040
    Points
    31 040
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jeffray03 Voir le message
    Salut a tous,
    j´ai un petit probleme, je suis debutant en shell, et j´ai eu comme pour devoir de : Copier un fichier situer dans une machine C en passant par par une machine B.
    car la machine A ou je me trouve ne peut pas acceder a la machine C ou se trouve le fichier.
    Est ce que quelqu´un peut m´aider a resourdre ce probleme. en faisant ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      scp user@C:/dev/fichier.txt ./tmp/
    Salut
    C'est étonnant de trouver un fichier texte sous /dev mais pourquoi pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh user@B "ssh user@C 'cd /dev; tar cf - fichier.txt'" | (cd /tmp; tar xpvf -)
    Citation Envoyé par jeffray03 Voir le message
    mais le probleme c´est que je voudrais savoir quand est ce la premiere copie est terminée avant de transferer de la machine B a la machine A.
    Même pas besoin. Le transfert part de C, transite par B sans s'y arrêter pour arriver à A...

  7. #7
    Membre averti
    Homme Profil pro
    [SciComp]
    Inscrit en
    Août 2013
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : [SciComp]

    Informations forums :
    Inscription : Août 2013
    Messages : 134
    Points : 323
    Points
    323
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh user@B "ssh user@C 'cd /dev; tar cf - fichier.txt'" | (cd /tmp; tar xpvf -)
    Pas mal. On peut faire ça avec des authentifications par mot de passe de A à C ou faut-il un jeu de clés entre B et C ?

    Edit: on peut faire ça avec du fichier plus compliqué que du txt (pdf, bin, ...) ?

  8. #8
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    merci, a tous je vais essayer ce code lundi au boulot.
    Eric

  9. #9
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 720
    Points : 31 040
    Points
    31 040
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par xflr6 Voir le message
    Pas mal. On peut faire ça avec des authentifications par mot de passe de A à C ou faut-il un jeu de clés entre B et C ?
    Ben il faut que user@B ait un accès sur la machine C (acceptation des clefs publiques de C) et idem pour user@A sur B.

    Citation Envoyé par xflr6 Voir le message
    Edit: on peut faire ça avec du fichier plus compliqué que du txt (pdf, bin, ...) ?
    Ah oui. Le tar (tape archive) peut archiver des fichiers de toutes tailles et aussi des dossiers. Mais uniquement des fichiers classiques, liens liens symboliques et répertoires. Je le préfère à cp car cp ne conserve pas les liens (si le dossier d'origine contient 2 liens, le dossier copié contiendra 2 fichiers identiques mais distincts)

  10. #10
    Membre averti
    Homme Profil pro
    [SciComp]
    Inscrit en
    Août 2013
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : [SciComp]

    Informations forums :
    Inscription : Août 2013
    Messages : 134
    Points : 323
    Points
    323
    Par défaut
    @ Sve@r:
    Ma confusion, pour les deux questions, vient de l'utilisation du stdout.

    Si l'authentification nécessite un mdp ou passphrase, je suppose que ça sera demandé autre part que sur stdout (stderr ?). Si oui, no pb. Si non, c'est plutôt par ignorance car pour moi tout ce qui sort de ce qui a avant la pipe (la demande de mot de passe par ex) va arriver concaténé avec le tar dans le stdout et je ne voyais pas trop comment s'en sortir après.

    Quant aux formats, c'est une confusion encore plus grande (j'étais fatigué hier soir...) : je ne pensais pas qu'on pouvait mettre une archive "en flux" sur le stdout et la récupérer sans dommages. J'ai demandé d'autres formats que txt je ne sais pas pourquoi, c'est la mise du tar ici, (et tout autre format en général), sur stdout qui me bloquait, ne sachant pas si il y avait altération... lors de la récupération.
    A y réfléchir, j'ai l'impression que j'ai déjà fait ça sans y penser en plus...

    Bref, merci, l'usage ssh et tar que tu fais m'aurait été bien utile à une époque, et je ne l'aurais jamais trouvé tout seul (je pensais la chose impossible...) d'où mon intérêt pour la question. Ce n'est pas encore cristal-clear, mais je garde ça en tête sérieusement pour une éventuelle prochaine fois où je devrais rebondir sur une machine passerelle.

  11. #11
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 720
    Points : 31 040
    Points
    31 040
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par xflr6 Voir le message
    @ Sve@r:
    Ma confusion, pour les deux questions, vient de l'utilisation du stdout.

    Si l'authentification nécessite un mdp ou passphrase, je suppose que ça sera demandé autre part que sur stdout (stderr ?). Si oui, no pb. Si non, c'est plutôt par ignorance car pour moi tout ce qui sort de ce qui a avant la pipe (la demande de mot de passe par ex) va arriver concaténé avec le tar dans le stdout et je ne voyais pas trop comment s'en sortir après.
    Attention, ici le tar ne travaillera pas sur stdout mais sur un std bien à lui (le petit "tiret" placé en position "f" => tar cf - | tar xpvf -). Le std "spécial" traverse le pipe pour être récupéré de l'autre coté. Et, bonheur suprème, ce genre de truc traverse même les ssh et rsh.
    On peut utiliser aussi stdout (tar c fichier |tar xp mais gros risque de collision si stdout est pollué par un autre truc.
    Et pour le mot de passe, lors du tout premier ssh entre 2 hosts, le host d'origine demande de confirmer les clefs du host cible. Il me semble que ça ne corromp pas la commande toutefois ici il y a un premier ssh qui fait appel, lui, à un second ssh. Dans ces conditions je pense qu'il vaut mieux que les ssh aient été déjà paramétrés avant de lancer la copie...

    Citation Envoyé par xflr6 Voir le message
    Quant aux formats, c'est une confusion encore plus grande (j'étais fatigué hier soir...) : je ne pensais pas qu'on pouvait mettre une archive "en flux" sur le stdout et la récupérer sans dommages.
    Arf c'est trop bon cette méthode. On peut copier des dossiers complets dans d'autres répertoires => tar cf - dossier | (cd autre_rep; tar xpvf -) et aussi à travers le réseau. Et chez-moi, le mien il mange sa race avec mes transferts dans tous les sens...

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 582
    Points : 19 455
    Points
    19 455
    Par défaut
    Citation Envoyé par ABS*
    dans ce contexte, le signe « - » [est] une option reconnue par quelques utilitaires UNIX qui écrivent dans stdout ou lisent dans stdin, comme tar, cat, ...
    * Advanced Bash Scripting : Chapitre 3 : Redirection depuis/vers stdin ou stdout [tiret].

  13. #13
    Membre averti
    Homme Profil pro
    [SciComp]
    Inscrit en
    Août 2013
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : [SciComp]

    Informations forums :
    Inscription : Août 2013
    Messages : 134
    Points : 323
    Points
    323
    Par défaut
    @ N_BaH & Sve@r : Merci pour les précisions / références, je vais regarder ça de plus près.

  14. #14
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Salut
    C'est étonnant de trouver un fichier texte sous /dev mais pourquoi pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh user@B "ssh user@C 'cd /dev; tar cf - fichier.txt'" | (cd /tmp; tar xpvf -)

    Même pas besoin. Le transfert part de C, transite par B sans s'y arrêter pour arriver à A...
    Merci ca marche à merveille.

    Un grand merci a tous.

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

Discussions similaires

  1. Copier coller d'une machine à une autre
    Par junior222 dans le forum Général Java
    Réponses: 4
    Dernier message: 01/09/2013, 02h24
  2. Ubuntu, problème portabilité projet d'une machine à une autre
    Par darkwall_37 dans le forum Code::Blocks
    Réponses: 0
    Dernier message: 14/10/2010, 03h46
  3. Copier une BDD d'une machine à une autre
    Par neo.51 dans le forum Administration
    Réponses: 6
    Dernier message: 12/10/2009, 19h05
  4. Réponses: 4
    Dernier message: 13/07/2008, 19h55
  5. transfert d'un workspace d'une machine à une autre
    Par caro_caro dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 09/04/2008, 18h35

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