Pages : 1
#1 Le 05/08/2015, à 14:09
- JujuLand
[Résolu] Paramètres scp
Bonjour,
En train de peaufiner un logiciel de maintenance, j'ai quelque soucis avec scp. La commande est générée automatiquement.
Si la commande est la suivante :
alain@Gramps-JujuLand:~$ scp -p -P 22xxx "/home/alain/Mes Photos/Collioure 2014" alain@192.168.1.12:.ssh/alain
/home/alain/Mes Photos/Collioure 2014: not a regular file
alain@Gramps-JujuLand:~$ scp -p -P 22xxx "/home/alain/Mes*Photos/Collioure*2014" alain@192.168.1.12:.ssh/alain
/home/alain/Mes Photos/Collioure 2014:No such file or directory
alain@Gramps-JujuLand:~$ scp -p -P 22xxx "/home/alain/Mes\ Photos/Collioure\ 2014" alain@192.168.1.12:.ssh/alain
/home/alain/Mes Photos/Collioure 2014:No such file or directory
J'avais aussi essayé de rajouter un \ devant les espaces, mais c'est comme pour les *
Par contre, si j'ajoute l'option -r, çà passe sans problème, et çà me crée le dossier:
alain@Gramps-JujuLand:~$ scp -r -P 22xxx "/home/alain/Mes*Photos/Collioure*2014" alain@192.168.1.12:.ssh/alain
Le problème, toutefois, est que s'il y a des sous-répertoires, ils seront copiés, ce que je ne veux pas.
Quelqu'un aurait-il une solution ?
Par ailleurs, je viens de m'apercevoir que l'option -p (pas de modification de la datation des fichiers) ne semble pas fonctionner.
A+
Dernière modification par JujuLand (Le 21/09/2015, à 13:41)
Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)
Hors ligne
#2 Le 11/08/2015, à 21:54
- elburgos
Re : [Résolu] Paramètres scp
Pour la première commande c'est normal car c'est un répertoire et non un fichier il te le dit d'ailleurs : not a regular file.
Pour les deux autres, il ne trouve pas le fichier, c'est normal car ici tes * et \ changent le nom du fichier recherché et biensur il n'existe pas ! On ne fait pas de l’échappement ou autre là !
une idée , ça marche avec cp alors pourquoi pas :
Et le joker * il le prend ?
scp -p -P 22xxx "/home/alain/Mes Photos/Collioure 2014/*" alain@192.168.1.12:.ssh/alain
Envoyé depuis mon Windows Phone
Hors ligne
#3 Le 25/08/2015, à 07:56
- JujuLand
Re : [Résolu] Paramètres scp
Et le joker * il le prend ?
scp -p -P 22xxx "/home/alain/Mes Photos/Collioure 2014/*" alain@192.168.1.12:.ssh/alain
Il est probable que cette commande fonctionne, mais elle pose un autre problème, si je ne rajoute pas le nom du dossier dans la destination, il me colle tout dans .ssh/alain, ce que je ne veux pas.
Et si le dossier 'Collioure 2014' est dans la destination et qu'il n'existe pas, il y a erreur ...
Je devrais dans ce cas ouvrir une session ssh avant le scp pour créer le dossier afin d'éviter l'erreur, ce qui ne m'enchante pas.
scp -p -P 22xxx "/home/alain/Mes Photos/Collioure 2014/*" alain@192.168.1.12:.ssh/alain/Collioure*2014
Bref, çà ne me semble pas possible ... je risque de devoir utiliser l'option -r et breaker pour éviter qu'il ne fasse du récursif.
Pour l'option -p (pas de modification de la datation), fonctionne-t-elle ?
Merci
A+
Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)
Hors ligne
#4 Le 25/08/2015, à 11:53
- elburgos
Re : [Résolu] Paramètres scp
Autrement rsync c'est sympa aussi
Dernière modification par elburgos (Le 25/08/2015, à 11:59)
Envoyé depuis mon Windows Phone
Hors ligne
#5 Le 25/08/2015, à 12:44
- elburgos
Re : [Résolu] Paramètres scp
Ça marche : adapte, créer un script avec un alias ou un alias (je suis un bite en shell )
cd "/home/alain/Mes Photos/" && find "Collioure 2014/" -maxdepth 1 -type f -print0 | xargs -0 tar cpf "Collioure 2014.tar" && cat "Collioure 2014.tar" | ssh alain@192.168.1.12 "tar xpf - -C /home/alain/" && rm "Collioure 2014.tar"
edit : oups une typo ...
Dernière modification par elburgos (Le 25/08/2015, à 13:33)
Envoyé depuis mon Windows Phone
Hors ligne
#6 Le 25/08/2015, à 13:26
- elburgos
Re : [Résolu] Paramètres scp
Tiens par exemple
copy_over_ssh.sh :
#!/bin/sh
cd $(dirname "$1")
input=$(basename "$1")
output="$2"
user=$3
ip=$4
find "$input" -maxdepth 1 -type f -print0 | xargs -0 tar cpf "$input.tar"
cat "$input.tar" | ssh $user@$ip "tar xpf - -C $output"
rm "$input.tar"
Après l'avoir rendu exécutable
./copy_over_ssh.sh "/home/alain/Mes Photos/Collioure 2014/" "home/alain/" alain 192.168.1.12
Dernière modification par elburgos (Le 25/08/2015, à 13:28)
Envoyé depuis mon Windows Phone
Hors ligne
#7 Le 25/08/2015, à 15:19
- JujuLand
Re : [Résolu] Paramètres scp
ok, d'après ce que je comprend, l'astuce et de créer une archive avec le dossier père, le transférer et le décompacter ensuite coté serveur, non ?
Je n'ai pas trop de temps avant lundi, mais j'essaie çà dès que je peux.
Merci
A+
Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)
Hors ligne
#8 Le 20/09/2015, à 14:16
- JujuLand
Re : [Résolu] Paramètres scp
Et le joker * il le prend ?
scp -p -P 22xxx "/home/alain/Mes Photos/Collioure 2014/*" alain@192.168.1.12:.ssh/alain
Non, scp n'aime pas les joker
ok, d'après ce que je comprend, l'astuce est de créer une archive avec le dossier père, le transférer et le décompacter ensuite coté serveur, non ?
Bon, comme je ne veux pas systématiquement faire de session ssh en plus du scp, j'ai contourné le problème en ajoutant les noms des fichiers dans une boucle avant de faire le scp.
J'ai toujours le problème du dossier père qui n'est pas créé sur le distant, mais, bon ... je fais avec ...
A+
Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)
Hors ligne
#9 Le 20/09/2015, à 16:38
- elburgos
Re : [Résolu] Paramètres scp
je ne comprends pas ton problème ... la méthode au dessus fait exactement ce que tu veux, qu'avec une seule connexion (ssh et n'utilise pas scp), crée les dossiers voulus et garde les droits.
Envoyé depuis mon Windows Phone
Hors ligne
#10 Le 20/09/2015, à 19:55
- JujuLand
Re : [Résolu] Paramètres scp
Bon, j'ai essayé, et c'est nickel.
J'ai juste modifié pour pouvoir spécifier le port
#!/bin/sh
cd $(dirname "$1")
input=$(basename "$1")
output="$2"
user=$3
ip=$4
port=$5
find "$input" -maxdepth 1 -type f -print0 | xargs -0 tar cpf "$input.tar"
cat "$input.tar" | ssh -p $port $user@$ip "tar xpf - -C $output"
rm "$input.tar"
PS: Je vais probablement ouvrir un nouveau thread, pour pouvoir utiliser vnc et ssh (probablement en remplacement de teamviewer)
J'ai vu les threads suivants:
https://forum.ubuntu-fr.org/viewtopic.php?pid=20365351
http://askubuntu.com/questions/304017/h … hrough-ssh
https://doc.ubuntu-fr.org/x11vnc
Mais je n'ai pas encore fait de tentative, et certainement pas tout compris.
Tout ce que je fais là fait partie d'un outil global de maintenance qui permet :
- cnx ssh
- scp
- cnx teamviewer
- sshfs
- cnx vnc avec ssh
Il me reste juste le dernier point à faire.
Je veux donc, comme pour les autres fonctions, à partir d'une base de donnée, choisir la machine, et me connecter en vnc avec ssh. Et donc, en ligne de commande si possible, sans passer par une interface graphique comme remmina (çà serait chouette si remmina acceptait des paramètres) ou comme teamviewer.
De plus, çà doit pouvoir attaquer des machines sous Ubuntu, mais aussi sous Xubuntu.
Bref, choisir la machine, et que çà se connecte ...
Merci
A+
Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)
Hors ligne
#11 Le 15/11/2015, à 20:30
- JujuLand
Re : [Résolu] Paramètres scp
Bon, une petite correction du script pour pouvoir être utilisé avec des noms comportant des espaces
#!/bin/sh
chemin=$(dirname "$1")
cd "$chemin"
input=$(basename "$1")
output="$2"
user=$3
ip=$4
port=$5
find "$input" -maxdepth 1 -type f -print0 | xargs -0 tar cpf "$HOME/$input.tar"
cat "$HOME/$input.tar" | ssh -p $port $user@$ip "tar xpf - -C $output"
rm "$HOME/$input.tar"
Je n'ai pas trouvé d'autre solutions que de renommer le dossier racine ce ce qu'on veut copier, puis de le renommer une fois la copie exécutée.
Exemple:
/user/alain/home/Images/Vacances 2015/Au bord de mer
sera renommé
/user/alain/home/Images/Vacances 2015/Au_bord_de_mer
ensuite copie
et enfin renommage comme avant copie.
Seul inconvénient, le dossier target n'a pas le nom original, mais c'est vraiment mineur comme défaut, faut simplement le savoir.
A+
Dernière modification par JujuLand (Le 15/11/2015, à 20:32)
Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)
Hors ligne
Pages : 1