# Créer un script avec une commande SSH à l'intérieur.



## spinoops (17 Juin 2011)

Bonjour,

J'ai besoin de créer un script qui fasse en gros :

1) connexion au serveur en ssh. J'ai évidemment généré et transféré la clé publique sur le serveur pour éviter d'avoir à entrer un mot de passe.


```
ssh admin@192.168.1.10
```

2) Copier un dossier sur ce serveur tout en gardant les droits (le plus important).


```
cp -Ra /Volumes/HD/mondossier/ /Volumes/HD/monnouveaudossier/
```

3) Pouvoir exécuter ces deux commandes directement dans un seul script. Comprenez qu'il faut absolument que les droits soient gardés depuis "mondossier" vers "monnouveaudossier", c'est le plus important. 

C'est donc la commande SSH qui me bloque dans mon script pour le moment. Je n'arrive pas à l'intégrer correctement.

De plus, j'ai essayé une autre solution qui est un scp du serveur vers lui même.


```
scp -rE admin@192.168.1.10:/Volumes/HD/mondossier/ admin@192.168.1.10:/Volumes/HD/monnouveaudossier/
```

Notez bien l'option -E qui permet de garder les droits mais qui ne fonctionne pas. Le dossier se copie donc, mais sans les droits.

Dernière solution, j'ai pensé à rsync :


```
rsync -rp admin@192.168.1.10:/Volumes/HD/mondossier/ admin@192.168.1.10:/Volumes/HD/monnouveaudossier/
```

Mais il m'indique que "The source and destination cannot both be remote.".

Je n'arrive donc pas à effectuer ces deux commandes dans un seul script ou dans une seule commande. Pouvez-vous m'éclairer?

Merci d'avance,

@ bientôt


----------



## Anonyme (17 Juin 2011)

j'ai -p moi pour garder les dates et les permissions via scp
http://www.delafond.org/traducmanfr/man/man1/scp.1.html

et selon moi, mieux vaut utiliser scp dont c'est le rôle, la copie de fichiers en remote


----------



## spinoops (17 Juin 2011)

Merci pour la réponse.

Malheureusement, même avec l'option -p, les droits ne sont pas gardés lors de la copie. Plus particulièrement les ACLs, c'est ça qui m'intéresse en fait.

Pour l'option -E, je pense que c'est seulement sur Mac car le man me donne :



> -E      Preserves extended attributes, resource forks, and ACLs.  Requires
> both ends to be running Mac OS X 10.4 or later.


----------



## bompi (17 Juin 2011)

Quel est le système cible, donc ?


----------



## spinoops (18 Juin 2011)

D'un Mac OS X client vers un Mac OS X serveur.


----------



## spinoops (21 Juin 2011)

Bon en fait, c'est tout con. Il suffit de lancer la commande comme ceci :


```
ssh admin@192.168.1.10 "cp -Ra /Volumes/HD/mondossier/ /Volumes/HD/monnouveaudossier/"
```

Juste le cp entre guillemets.


----------

