pslurp: Copiar archivos de varias máquinas a una máquina central en paralelo | Algo de Linux

martes, 26 de febrero de 2013

pslurp: Copiar archivos de varias máquinas a una máquina central en paralelo

pslurp es otra de las herramientas que uso en ocasiones para copiar archivos en paralelo desde un conjunto de máquinas, como los servidores ltsp, a mi máquina pasarela.
Como ya comenté en el artículo sobre pscp, me es bastante cómodo porque tengo pasada una clave pública de la máquina pasarela a dichos servidores y no me pide password, aunque como ya dije, ésto no es imprescindible proque podemos indicarle a pscp la password con la que queremos realizar la copia haciendo uso del parámetro --askpass.
Además, como en la máquina pasarela, uso también dsh, dispongo de archivos con listas de máquinas sobre las que actuar de forma remota. Por ejemplo: 
  • /etc/dsh/machines.list
  • /etc/dsh/group/servidoresltsp.list
  • /etc/dsh/group/pizarras.list
La sintaxis básica del comando es la siguiente:

# pslurp [OPTIONS] remote local

Para ver las opciones disponibles:

# pslurp --help
Veamos un ejemplo práctico:

Supongamos que tengo un fichero con la lista de servidores ltsp de mi centro (/etc/dsh/group/servidoresltsp) y quiero copiar la clave pública de cada servidor ltsp a mi máquina, sabiendo que la clave pública de cada servidor ltsp se encuentra almacenada en el directorio /root/.ssh/id_rsa.pub. Para lograrlo, no tengo más que recurrir a pslurp:


# pslurp -h /etc/dsh/group/servidoresltsp -L /home/gestor/claves-publicas-ltsp/ /root/.ssh/id_rsa.pub id_rsa.pub

¿Qué es lo que va a hacer pslurp? Simplemente, va a copiar el archivo /root/.ssh/id_rsa.pub de las máquinas remotas especificadas en /etc/dsh/group/servidoresltsp y lo va a almacenar en el directorio local /home/gestor/claves-publicas-ltsp de mi máquina con el nombre id_rsa.pub. Pero no va a copiar directamente el archivo id_rsa.pub dentro del directorio /home/gestor/claves-publicas-ltsp, sino que va a crear un subdirectorio dentro de /home/gestor/claves-publicas-ltsp con el nombre de cada máquina, donde almacenará el archivo que estamos copiando.

Si lo que queremos copiar es un directorio con archivos y/o subdirectorios, podremos hacerlo con la opción -r. Por ejemplo: Siguiendo con el ejemplo anterior, si quisiéramos copiar el directorio .ssh completo, en lugar de copiar solamente el archivo id_rsa.pub:

# pslurp -h /etc/dsh/group/servidoresltsp -L /home/gestor/claves-publicas-ltsp/ -r /root/.ssh ssh

No hay comentarios: