Pregunta

Necesito usar SCP Update algún directorio en otro servidor. Esto es similar a

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

Entonces, ¿cómo puedo hacer la búsqueda mientras los directorios de destino están en otro servidor?

gracias

¿Fue útil?

Solución

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

El hallazgo es lo que estás buscando, supongo ...

Otros consejos

Todo el mundo olvida manejar los espacios en los nombres de los archivos: P

Para reutilizar el ejemplo 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

Esto pasará por encima de cada línea de salida en lugar de cada palabra (y se cita $ I).

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

Si tiene acceso de shell en el servidor remoto, cree una lista de los directorios de forma remota (usando Find, LS, o lo que sea que use en su script de shell), y copie al sistema del que está copiando. Entonces puedes usar

for d in file_of_remote_dirs; do
    scp /usr/some/file remote_machine:d;
done
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top