#1 Le 26/03/2008, à 14:11
- libre
[Résolu] Trouver un répertoire, le copier et cela via SSH
Je pense que je suis dans le bon forum.
J'ai 2 pc, dont un me sert comme serveur local.
Je cherche donc une commande qui puisse me trouver un répertoire (sur mon serveur), le copie sur le bureau (sur le pc d'ou la commande à été entrée) et cela via SSH.
J'ai donc pratiqué par tâtonnement, mon premier essai
ssh fab@192.168.1.10
m'a permis de me connecté au serveur.
Mon deuxième essai
ssh fab@192.168.1.10 "find /media/disk -iname essai1 -type d"
m'a permis de trouver le répertoire essai1 sur le serveur.
Mon dernier essai
ssh fab@192.168.1.10 "find /media/disk -iname essai1 -type d -exec scp -r {} ~/Bureau \;"
Ne me copie pas le répertoire essai1 sur le bureau d'ou la commande à été entrée mais bien sur le bureau du serveur
Quel est la solution pour obtenir une copie du répertoire sur le bureau d'ou la commande à été entrée ?
Dernière modification par libre (Le 27/03/2008, à 18:35)
La liberté signifie la responsabilité. C'est pourquoi la plupart des hommes la craignent.
Hors ligne
#2 Le 26/03/2008, à 14:20
- libre
Re : [Résolu] Trouver un répertoire, le copier et cela via SSH
Je viens d'essayer
ssh fabrice@192.168.1.100 'bash -c "find /media/disk -iname essai1 -type d -exec scp -r {} ~/Bureau \;"'
mais le résultat est le même, c'est à dire qu'il ne me copie pas le répertoire essai1 sur le bureau d'ou la commande à été entrée mais bien sur le bureau du serveur
La liberté signifie la responsabilité. C'est pourquoi la plupart des hommes la craignent.
Hors ligne
#3 Le 26/03/2008, à 14:21
- Yannick_LM
Re : [Résolu] Trouver un répertoire, le copier et cela via SSH
scp -r fab@host:/chemin/vers/essai1 ~/Bureau
Par contre, je vois pas trop comment le faire en une seule ligne.
Sinon, sshfs me paraît être une bonne idée
Dernière modification par Yannick_LM (Le 26/03/2008, à 14:21)
Trucs et astuces pour Vim
Ma web page avec des trucs dessus ...
Hors ligne
#4 Le 26/03/2008, à 14:32
- nyquist
Re : [Résolu] Trouver un répertoire, le copier et cela via SSH
essayes ça :
ssh fab@192.168.1.10 "find /media/disk -iname essai1 -type d -exec scp -r {} host:~/Bureau \;"
ou host est le nom de ta machine bureau (genre fab-desktop) ou l'adresse ip de celui ci.
Inscrit sur http://parrains.linux.free.fr/
La liste des groupes d'utilisateur de linux : http://www.aful.org/gul/liste
mettez [Résolu] dans le titre lorsque votre problème est solutionné
membre de http://www.lilolipo.net
Hors ligne
#5 Le 26/03/2008, à 14:38
- libre
Re : [Résolu] Trouver un répertoire, le copier et cela via SSH
Merci pour vos réponse,
nyquist, avec ta commande j'obtiens ce message
ssh: connect to host 192.xxx.x.x port 22: No route to host
lost connection
Et pas de copie (sur aucun des pc)
Yannick_LM, ta commande fonctionne mais le problème c'est de la combiné avec find
Dernière modification par libre (Le 26/03/2008, à 14:49)
La liberté signifie la responsabilité. C'est pourquoi la plupart des hommes la craignent.
Hors ligne
#6 Le 26/03/2008, à 14:46
- libre
Re : [Résolu] Trouver un répertoire, le copier et cela via SSH
Correction, je me suis trompé dans l'adresse Ip.
J'ai donc modifié la commande et j'obtient l'erreur suivante
ssh: connect to host 192.168.1.10 port 22: Connection refused
lost connection
Et pas de copie (sur aucun des pc)
Dernière modification par libre (Le 26/03/2008, à 14:55)
La liberté signifie la responsabilité. C'est pourquoi la plupart des hommes la craignent.
Hors ligne
#7 Le 26/03/2008, à 14:59
- libre
Re : [Résolu] Trouver un répertoire, le copier et cela via SSH
Par contre un
scp -r fab@192.168.1.10:~/Bureau/essai1 ~/Bureau
fonctionne. Il me copie bien le répertoire essai1 sur le pc d'ou la commande à été entrée, et sans message d'erreur.
Comment combiné cette commande avec un find ?
Dernière modification par libre (Le 26/03/2008, à 15:09)
La liberté signifie la responsabilité. C'est pourquoi la plupart des hommes la craignent.
Hors ligne
#8 Le 26/03/2008, à 15:48
- nyquist
Re : [Résolu] Trouver un répertoire, le copier et cela via SSH
Comme d'hab je lance une piste sans trop y croire mais en changeant ssh par rsh
et en changeant le -exec par un pipe avec xargs... bref a mouliner mais doit y avoir une solution.
rsh 192.168.1.10 "find /media/disk -iname essai1 -type d" | xargs scp -r fab@192.168.1.10:{} ~/Bureau
Inscrit sur http://parrains.linux.free.fr/
La liste des groupes d'utilisateur de linux : http://www.aful.org/gul/liste
mettez [Résolu] dans le titre lorsque votre problème est solutionné
membre de http://www.lilolipo.net
Hors ligne
#9 Le 26/03/2008, à 16:18
- libre
Re : [Résolu] Trouver un répertoire, le copier et cela via SSH
J'ai essayé ta commande nyquist
rsh 192.168.1.10 "find /media/disk -iname essai1 -type d" | xargs scp -r fab@192.168.1.10:{} ~/Bureau
aucune copie et il me donne comme erreur
No such file or directory
Je pensais avoir trouvé avec cette commande, qui me semblait correct
scp -r $(ssh fab@192.168.1.10 "find /media/disk -iname essai1 -type d") ~/Bureau
je l'ai essayé > aucune copie et il me donne comme erreur
cp: ne peut évaluer `/media/disk/essai1': Aucun fichier ou répertoire de ce type
Je commence à désespéré
La liberté signifie la responsabilité. C'est pourquoi la plupart des hommes la craignent.
Hors ligne
#10 Le 26/03/2008, à 17:06
- Yannick_LM
Re : [Résolu] Trouver un répertoire, le copier et cela via SSH
Amha, c'est juste pas possible de combiner un find.
Qu'est-ce qui te gêne dans sshfs ? C'est vraiment sympa, comme solution.
Trucs et astuces pour Vim
Ma web page avec des trucs dessus ...
Hors ligne
#11 Le 26/03/2008, à 17:53
- libre
Re : [Résolu] Trouver un répertoire, le copier et cela via SSH
Ce n'est pas que cela me gêne Yannick_LM.
Le but est lors d'une réinstallation d'ubuntu via le live cd, après l'installation de base, j'avais l'intention de récupérer mes fichiers de configuration (sources.list, xorg.conf, sauvetage evolution, fstab, ....) via mon serveur.
SSH me permet d'y avoir accès immédiatement sans installation/modification supplémentaire. SSH-client étant installé par défaut sur le live CD sans modification du fstab ou téléchargement.
Un find permet de retrouver ses fichiers sans en connaître la localisation (d'une pierre, deux coups). Maintenant, si cela n'est pas possible avec un find, je dois me diriger vers une autre méthode.
Dernière modification par libre (Le 26/03/2008, à 17:57)
La liberté signifie la responsabilité. C'est pourquoi la plupart des hommes la craignent.
Hors ligne
#12 Le 26/03/2008, à 20:19
- nyquist
Re : [Résolu] Trouver un répertoire, le copier et cela via SSH
alors fait le en 2 fois :
1er étape je copie tous les fichiers avec un find -exec
eventuellement je compresse le tout dans une archive.
puis je le récupere en scp .
(et je mets le tout dans un seul script).
je penses qu'il ne faut pas se focaliser sur e fait de tout faire en une seule ligne mais plutot faire en sorte de n'avoir qu'une commande a lancer (donc un script).
Dernière modification par nyquist (Le 26/03/2008, à 20:20)
Inscrit sur http://parrains.linux.free.fr/
La liste des groupes d'utilisateur de linux : http://www.aful.org/gul/liste
mettez [Résolu] dans le titre lorsque votre problème est solutionné
membre de http://www.lilolipo.net
Hors ligne
#13 Le 26/03/2008, à 22:04
- Yannick_LM
Re : [Résolu] Trouver un répertoire, le copier et cela via SSH
je penses qu'il ne faut pas se focaliser sur e fait de tout faire en une seule ligne mais plutot faire en sorte de n'avoir qu'une commande a lancer (donc un script).
Un gros +1. Un truc bien long sur une seule ligne, ça s'oublie, ça se perd, c'est pénible à adapter.
Un joli script avec tout ce qu'il faut ça permet de définir des zolies variables, ça s'adapte bien, et ça se partage.
(même si je dois reconnaître que les one-liner sont bien rigolos à écrire)
Trucs et astuces pour Vim
Ma web page avec des trucs dessus ...
Hors ligne
#14 Le 27/03/2008, à 17:10
- Saito
Re : [Résolu] Trouver un répertoire, le copier et cela via SSH
essayes ça :
ssh fab@192.168.1.10 "find /media/disk -iname essai1 -type d -exec scp -r {} host:~/Bureau \;"
ou host est le nom de ta machine bureau (genre fab-desktop) ou l'adresse ip de celui ci.
Correction, je me suis trompé dans l'adresse Ip.
J'ai donc modifié la commande et j'obtient l'erreur suivantessh: connect to host 192.168.1.10 port 22: Connection refused
lost connectionEt pas de copie (sur aucun des pc)
La solution de nyquist marche (en tout cas chez moi), sauf que Libre doit installer un serveur ssh sur son deuxième pc aussi ( d'où le «Connection refused») puisque le scp est lancé de 192.168.1.10 vers son pc local.
ssh machin@server 'find /media/disk -iname essai1 -type d -exec scp {} bidule@mon_pc:~/Bureau \;'
Avec authentification par clés car tu n'auras pas accès au prompt lors du scp. (et puis les clés, y'a que ça de vrai!)
PS: Mais en fait ce n'est pas ce que tu veux (j'avais pas tout lu ), donc tu peux passer par la commande que tu as écrit plus haut, un peu modifiée, sans avoir à installer de serveur ssh sur le pc à réinstaller:
scp -r fab@192.168.1.10:"$(ssh fab@192.168.1.10 'find /media/disk -iname essai1 -type d')" ~/Bureau
Dernière modification par Saito (Le 27/03/2008, à 17:24)
Aku-Soku-Zan_Shinsengumi
Hors ligne
#15 Le 27/03/2008, à 18:31
- libre
Re : [Résolu] Trouver un répertoire, le copier et cela via SSH
Merci pour vos réponse
Je viens d'essayer ta commande Saito, à savoir
scp -r fab@192.168.1.10:"$(ssh fab@192.168.1.10 'find /media/disk -iname essai1 -type d')" ~/Bureau
Elle fonctionne du tonnerre, sans installer SSH server, en une seule ligne.
C'est ce que je cherchais en vain, je la note illico presto.
Merci pour votre aide
Dernière modification par libre (Le 27/03/2008, à 18:34)
La liberté signifie la responsabilité. C'est pourquoi la plupart des hommes la craignent.
Hors ligne
#16 Le 27/03/2008, à 18:58
- Saito
Re : [Résolu] Trouver un répertoire, le copier et cela via SSH
Par contre, arrange-toi pour que ton dossier de sauvegarde (essai1) ait un nom unique, pour ne pas que find retourne plusieurs noms car cela casserait le scp.
Par contre si find ne renvoit rien, tu verras ce message d'erreur:
scp: .: not a regular file
Aku-Soku-Zan_Shinsengumi
Hors ligne