scp'ing múltiples archivos en una sola pasada - a múltiples destinos en un servidor de destino?


9

Me gustaría scp alrededor de media docena de archivos en un par de directorios a los mismos directorios en una máquina de destino.

Sin utilizar claves ssh, ¿es esto posible en una llamada?

Por ejemplo:

scp /path/to/fileA,/anoth/erpath/to/fileB,/yet/more/files/*    #continue next line
    destination:/path/to,/anoth/erpath/to,/yet/more/files

Respuestas:


8

Comprima los archivos en el lado de envío y descomprímalos en el lado de recepción.

tar -cf - /path/to/fileA /anoth/erpath/to/fileB /yet/more/files/* |
ssh -C destination 'cd / && tar -xf -'

También puede escribir una sesión sftp o usar rsync con el filtro correcto.


Si solo tiene unos pocos archivos que tiene que copiar en total, agradezco la scp -rsolución. pero para más esto es mucho más rápido.
xaedes

4

Puede copiar desde múltiples src a un destino. scp -r src1 src2 ... dst Pero no a múltiples destinos.

Una opción es copiar todo el directorio a un directorio de destino temporal. Luego muévalos hacia atrás después.


esto funciona tan bien como la solución tar-ssh. Además, es más fácil escribir / recordar. También le brinda retroalimentación sobre lo que se está cargando. PERO si tiene muchos archivos pequeños para copiar tar-ssh será mucho más rápido, ya que solo tiene que transferir un archivo grande, mientras que scp-r copia cada archivo individualmente con mucha más sobrecarga.
xaedes

1

Mira el psshpaquete. Tiene parallel-scpmando. -hLa opción le permite proporcionar un archivo de texto con varios hosts como destino (uno por línea).


¿Se soluciona esto al pedir las contraseñas cada vez que un archivo de A va a B?
warren

2
Para eso estoy usando ssh-add. Escribe sus credenciales una vez al comienzo de un día. Entonces inicias sesión automáticamente.
Codificador informal

0

Utilizo el siguiente comando para copiar múltiples archivos a múltiples destinos.

scp -r src {1,2,3} dest {1,2,3}

este comando actúa como el siguiente conjunto de comandos

scp -r src1 dest1

scp -r src1 dest2

.

.

.

scp -r src3 dest2

scp -r src3 dest3


No funciona cuando lo intento. ubuntu@landslide:~$ scp -r {test1,test2} landslide:/home/ubuntu/{test3,test4} scp: /home/ubuntu/test4: No such file or directoryQuiere que el destino sea un directorio.
sudo
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.