pscp: Copiar archivos en paralelo a varias máquinas | Algo de Linux

lunes, 18 de febrero de 2013

pscp: Copiar archivos en paralelo a varias máquinas

Muchas veces recurro a pscp para copiar archivos en paralelo desde mi máquina pasarela a los servidores ltsp. 

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. En cualquier caso, ésto no es algo imprescindible porque 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:

# pscp [OPTIONS] local remote

De este modo, si quiero copiar un script que tengo en mi máquina al directorio /usr/sbin/ de todos los servidores de terminales, podría ejecutar el comando pscp de la siguiente manera:

# pscp -h /etc/dsh/group/servidoresltsp.list actualizakernelchroot.sh /usr/sbin/  

Si quisiera copiar un directorio el directorio flashplugin-nonfree que tengo almacenado dentro del directorio /root y su contenido de forma recursiva en las máquinas remotas podría hacerlo del siguiente modo:

# pscp -h /etc/dsh/group/servidoresltsp.list -r /root/flashplugin-nonfree /var/cache/

Y si quisiera  obtener información acerca del resultado de la ejecución de la copia:

# pscp -h /etc/dsh/group/servidoresltsp.list -r -v /root/flashplugin-nonfree /var/cache/