Je ne peux pas sembler capable de convaincre scp de se comporter.Comment scripter scp -r copy?
Pour les données de test
[email protected]:/tmp$ find /tmp/a1/
/tmp/a1/
/tmp/a1/a2
/tmp/a1/a2/a3
En exécutant la commande
[email protected]:/tmp$ scp -r /tmp/a1 domU-12-31-38-00-E2-52.compute-1.internal:/tmp/a1
Je me attends à la même structure de répertoire créé sur domU-12-31-38-00-E2-52.compute- 1.internal, quel que soit le répertoire/tmp/a1 existant sur l'hôte cible ou non. Au lieu de cela, ce qui crée en fait scp est la structure suivante (si/tmp/a1 existe sur l'hôte cible)
[email protected]:/tmp$ ssh domU-12-31-38-00-E2-52.compute-1.internal find /tmp/a1
/tmp/a1
/tmp/a1/a1
/tmp/a1/a1/a2
/tmp/a1/a1/a2/a3
Comment peut-scp être forcé de copier dans le répertoire donné que la racine de l'opération? Plus tard, je voudrais script cette opération afin que le chemin de répertoire donné sur le maître, je peux appeler un script qui répliquera la même structure de répertoire à tous les esclaves. Veuillez noter que le comportement de rsync (au moins de ce que j'ai testé) est le même de cette manière.
Merci, Maxim.
Je ne pense pas que cela fonctionnera dans tous les cas comme un utilitaire de copie générale aux esclaves. Votre suggestion signifie que je devrai trouver le chemin absolu pour un paramètre, puis décider si c'est un répertoire ou pas. Si c'est alors dépouiller un niveau avant de construire la commande scp. N'y a-t-il pas une solution plus simple qui soit "scripting friendlier?" –
Vous pouvez également supprimer un niveau pour les fichiers. Je ne pense pas que cela doive être conditionnel. 'dirname' le fera pour vous. Vous devrez faire attention aux barres obliques à la fin du chemin. –