#1 Le 10/04/2017, à 00:55
- abach
Bash - passer le port en paramètre à rsync
Bonjour à tous et à toutes,
Dans un script bash, pour downloader mes sites Internet en rsync, je dois passer le port en paramètre dans une fonction. En effet, j'ai l'un ou l'autre sites où le port actif pour rsync n'est pas le port 22.
Or cette fonction devrait marcher dans tous les cas de https://forum.ubuntu-fr.org/img/fluxtoo … .pngfigure..
La fonction, la voici :
site-ssh()
{
echo "rsync"
echo "rsync --progress -arzvl --delete-after --exclude-from=$5 -e 'ssh -p $3' $2 $1/"
rsync --progress -arzvl --delete-after --exclude-from=$5 -e 'ssh -p $3' $2/ $1/
}
L'echo me renvoie bien ce que j'attends :
rsync --progress -arzvl --delete-after --exclude-from=/home/abach/scripts/svg_s.exclude -e 'ssh -p 1234' utilisateur@site.com: /home/abach/En-cours/today/nomdusite/
mais l'exécution du rsync proprement dit me retourne
Bad port '$3'
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(226) [Receiver=3.1.1]
Et là, j'avoue que je suis battu.
Si quelqu'un a une idée, je lui en suis par avance reconnaissant.
Les chiens vous regardent tous avec vénération. Les chats vous toisent tous avec dédain. Il n’y a que les cochons qui vous considèrent comme leurs égaux. - Winston Churchill
Je suis parrain Linux
Hors ligne
#2 Le 10/04/2017, à 02:50
- Watael
Re : Bash - passer le port en paramètre à rsync
salut,
as-tu essayé
de remplacer les apostrophes par des guillemets ?
de mettre le troisième paramètre positonnel en dehors des apostrophes :
rsync ... -e 'ssh -p '$3 2$2/ $1/
?
parce que, de toute évidence, il n'est pas interprété.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 10/04/2017, à 04:50
- abach
Re : Bash - passer le port en paramètre à rsync
Salut,
Non je n'ai pas essayé car j'ai tout simplement regardé ma syntaxe de rsync qui demande les simples quotes comme ça
Les chiens vous regardent tous avec vénération. Les chats vous toisent tous avec dédain. Il n’y a que les cochons qui vous considèrent comme leurs égaux. - Winston Churchill
Je suis parrain Linux
Hors ligne
#4 Le 10/04/2017, à 06:59
- michel_04
Re : Bash - passer le port en paramètre à rsync
Bonjour,
de remplacer les apostrophes par des guillemets ?
Non je n'ai pas essayé car j'ai tout simplement regardé ma syntaxe de rsync qui demande les simples quotes comme ça
Tu devrais essayer.
A+
:D
De la bonne manière de poser les questions - Trouver de l'aide grâce au Groupe des Parrains Linux - Le Pacte des Gnous
PCs sous Debian Stable & Debian Sid.
Hors ligne
#5 Le 10/04/2017, à 11:32
- MicP
Re : Bash - passer le port en paramètre à rsync
Bonjour
…
echo "rsync --progress -arzvl --delete-after --exclude-from=$5 -e 'ssh -p $3' $2 $1/"
…
…
L'echo me renvoie bien ce que j'attends :rsync --progress -arzvl --delete-after --exclude-from=/home/abach/scripts/svg_s.exclude -e 'ssh -p 1234' utilisateur@site.com: /home/abach/En-cours/today/nomdusite/
…
Je ne vois pas du tout comment le paramètre $3 aurait pu avoir été interprété alors qu'il est dans une chaîne située entre des caractères apostrophes.
EDIT : Voir message suivant
et c'est d'ailleurs confirmé par ce que te retourne le message d'erreur :
…
mais l'exécution du rsync proprement dit me retourneBad port '$3'
…
=======
michel@debg53sw:~$ echo 'Le compte utilisateur est $USER'
Le compte utilisateur est $USER
michel@debg53sw:~$ echo "Le compte utilisateur est $USER"
Le compte utilisateur est michel
michel@debg53sw:~$
=======
https://abs.traduc.org/abs-5.0-fr/ch05.html
Dernière modification par MicP (Le 10/04/2017, à 12:21)
Hors ligne
#6 Le 10/04/2017, à 11:55
- Watael
Re : Bash - passer le port en paramètre à rsync
Je ne vois pas du tout comment le paramètre $3 aurait pu avoir été interprété alors qu'il est dans une chaîne située entre des caractères apostrophes.
parce qu'il est d'abord entre guillemets :
$ myFunc() { echo "bla '$1'";}
$ myFunc poipoi
bla 'poipoi'
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#7 Le 10/04/2017, à 12:20
- MicP
Re : Bash - passer le port en paramètre à rsync
Merci Watael
Il va me falloir faire plus attention avant de poster, surtout en ce moment (situation de stress => manque de concentration)
Mais manque de concentration ou pas, je ne savais pas que les variables pouvaient êtres interprétées dans ce contexte.
J'apprécie énormément tes messages qui en si peu de mots me permettent de voir de suite ce qui me manque.
Dernière modification par MicP (Le 10/04/2017, à 13:04)
Hors ligne