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 – is utility for copying files in parallel to a number of hosts.
  2. prsync – is a utility for efficiently copying files to multiple hosts in parallel.
  3. pnuke – it helps to kills processes on multiple remote hosts in parallel.
  4. pslurp – it helps to copy files from multiple remote hosts to a central host in parallel.

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. How to Install Pssh Tool to Execute Commands on Multiple Linux Servers

Casi todas las diferentes opciones que se utilizan 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 de la máquina local a varios 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. -h switch used to read a hosts from a given file and location.
  2. -l switch reads a default username on all hosts that do not define a specific user.
  3. -A switch tells pscp ask for a password and send to ssh.
  4. -v switch is used to run pscp in verbose mode.

Si desea copiar todo el directorio, use la opción -r, que copiará recursivamente 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.