Pscp: transferir/copiar archivos a varios servidores Linux utilizando un solo shell


La utilidad Pscp le permite transferir/copiar archivos a múltiples servidores Linux remotos usando un solo terminal con un solo comando, esta herramienta es parte de Pssh (Parallel SSH Tools), que proporciona versiones paralelas de OpenSSH y otras herramientas similares como:

  1. pscp: es una utilidad para copiar archivos en paralelo a varios hosts.
  2. prsync: es una utilidad para copiar archivos de manera eficiente en varios hosts en paralelo.
  3. pnuke: ayuda a eliminar procesos en varios hosts remotos en paralelo.
  4. pslurp: ayuda a copiar archivos de varios hosts remotos a un host central en paralelo.

Cuando se trabaja en un entorno de red donde hay varios hosts en la red, un administrador del sistema puede encontrar muy útiles estas herramientas enumeradas anteriormente.

En este artículo, veremos algunos ejemplos útiles de la utilidad Pscp para transferir/copiar archivos a múltiples hosts Linux en una red.

Para usar la herramienta pscp, necesita instalar la utilidad PSSH en su sistema Linux, para la instalación de PSSH puede leer este artículo.

  1. Cómo instalar la herramienta Pssh para ejecutar comandos en varios servidores Linux

Casi todas las diferentes opciones utilizadas con estas herramientas son las mismas, excepto unas pocas que están relacionadas con la funcionalidad específica de una determinada utilidad.

Cómo utilizar Pscp para transferir/copiar archivos a varios servidores Linux

Mientras usa pscp, debe crear un archivo separado que incluya el número de dirección IP del servidor Linux y el número de puerto SSH que necesita para conectarse al servidor.

Creemos un nuevo archivo llamado "myscphosts.txt" y agreguemos la lista de direcciones IP de hosts Linux y el número de puerto SSH (predeterminado 22) como se muestra.

192.168.0.3:22
192.168.0.9:22

Una vez que haya agregado hosts al archivo, es hora de copiar archivos desde la máquina local a múltiples hosts Linux en el directorio/tmp con la ayuda del siguiente comando.

# pscp -h myscphosts.txt -l tecmint -Av wine-1.7.55.tar.bz2 /tmp/
OR
# pscp.pssh -h myscphosts.txt -l tecmint -Av wine-1.7.55.tar.bz2 /tmp/
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 17:48:25 [SUCCESS] 192.168.0.3:22
[2] 17:48:35 [SUCCESS] 192.168.0.9:22

Explicación sobre las opciones utilizadas en el comando anterior.

  1. Conmutador -h que se utiliza para leer hosts de un archivo y una ubicación determinados.
  2. -l switch lee un nombre de usuario predeterminado en todos los hosts que no definen un usuario específico.
  3. -Un interruptor le dice a pscp que pida una contraseña y la envíe a ssh.
  4. -v se usa para ejecutar pscp en modo detallado.

Si desea copiar el directorio completo, use la opción -r, que copiará de forma recursiva directorios completos como se muestra.

# pscp -h myscphosts.txt -l tecmint -Av -r Android\ Games/ /tmp/
OR
# pscp.pssh -h myscphosts.txt -l tecmint -Av -r Android\ Games/ /tmp/
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 17:48:25 [SUCCESS] 192.168.0.3:22
[2] 17:48:35 [SUCCESS] 192.168.0.9:22

Puede ver la página de entrada manual para pscp o usar el comando pscp --help para buscar ayuda.

Conclusión

Vale la pena probar esta herramienta como si controlara varios sistemas Linux y ya tuviera una configuración de inicio de sesión sin contraseña basada en claves SSH.