GNU/Linux >> Tutoriales Linux >  >> Linux

Use scp para copiar un archivo a diferentes servidores

Hay varias herramientas que pueden enviar archivos scp a múltiples hosts (con conexiones simultáneas), como pssh y kanif. En términos de contraseñas, sugeriría usar el reenvío de agentes. Esto le permite conservar la clave en su máquina local, pero usarla al iniciar conexiones SSH desde otro host. De lo contrario, el --askpass opción al parallel-scp El comando pssh hace que solicite una contraseña para cada host.

Si no puede instalar una herramienta para hacer esto, configure el reenvío del agente (agregando el -A opción a ssh cuando se conecte a la máquina en la que está haciendo esto) y luego ejecute scp en un bucle así:

for HOST in server1 server2 server3; do
    scp somefile $HOST:~/somedir/
done

Intente hacer esto con un script esperado, por ejemplo,

#!/bin/bash

HOSTS="h1.lan h2.lan h3.lan"

read -p "Password: " PASSWORD


for HOST in $HOSTS
do
    expect -c "
    spawn /usr/bin/scp file [email protected]$HOST:/destination_path/
    expect {
    "*password:*" { send $PASSWORD\r;interact }
    }
    exit
    "
done

Lo anterior debería ser bastante sencillo para adaptarse a sus requisitos.


Linux
  1. ¿Cómo copiar un archivo desde un servidor remoto a una máquina local?

  2. Usar etiquetas de servidores en la nube

  3. Utilice CloudFlare con Rackspace

  4. Cómo copiar un archivo de una máquina Vagrant a localhost

  5. ¿Cómo copiar un archivo sin usar scp dentro de una sesión ssh?

Comando Cp en Linux (Copiar archivos)

Archivo host de Linux:¿Cómo editarlo y usarlo?

Cómo usar el comando SCP en Linux

Use el archivo de configuración SSH para administrar las conexiones SSH a varios servidores remotos

Cómo usar Rsync para copiar/sincronizar archivos entre servidores

¿Cómo usar gzip en Linux?