Question

J'ai besoin d'utiliser SCP Mise à jour du répertoire dans un autre serveur. C'est similaire à

for i in /usr/some/???/unknown/dir
do
cp /usr/some/file $i
done

Alors, comment puis-je faire la recherche pendant que les répertoires de destination sont sur un autre serveur?

Merci

Était-ce utile?

La solution

for i in `ssh user@otherhost find /usr/some -type d -name dir`
do
  scp user@otherhost:/usr/some/dir/$i .
done

La découverte est ce que vous cherchez, je suppose ...

Autres conseils

Tout le monde oublie de gérer les espaces dans les noms de fichiers: P

Pour réutiliser l'exemple de LB:

OLD_IFS=$IFS
IFS=$\'n'
for i in `ssh user@otherhost find /usr/some -type d -name dir`
do
  scp user@otherhost:"/usr/some/dir/$i" .
done
IFS=$OLD_IFS

Cela bouclera sur chaque ligne de sortie au lieu de chaque mot (et $ i est cité).

for i in `ssh user@otherhost ls /usr/some/dir/` 
do
 scp user@otherhost:/usr/some/dir/$i .
done

Si vous avez un accès à la coquille sur le serveur distant, créez une liste des répertoires à distance (en utilisant Find, ou LS, ou tout ce que vous utilisez dans votre script de shell), et copiez-le dans le système à partir duquel vous copiez. Alors vous pouvez utiliser

for d in file_of_remote_dirs; do
    scp /usr/some/file remote_machine:d;
done
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top