Thursday, March 19, 2009

Copiar via ssh un archivo o directorio con rsync comprimiendo on-the-fly (al vuelo)

El ya de por si interesante programita rsync tiene un flag que permite comprimir lo que se esta enviando (gzip). Podemos combinar rsync + ssh para hacer un envio seguro de los datos de la siguiente forma:

rsync -azvhe "ssh -p 1234" /dir_local/archivo root@192.168.1.1:/dir_remoto

o sino para un directorio completo:

rsync -azvhe "ssh -p 1234" /dir_a_copiar/ root@192.168.1.1:/dir_remoto

cabe aclarar que la barra al final de dir_a_copiar es muy importante ya que si esta nos dice que copiemos el contenido de /dir_a_copiar dentro de /dir_remoto, si no la colocamos el comando copiara /dir_a_copiar/ DENTRO de /dir_remoto, por lo que la estructura quedaria /dir_remoto/dir_a_copiar (las idiosincracias de rsync ;-)

los flags hacen lo siguiente:

a: archiva
z: comprime (gzip)
v: verbose (dar detalles podria ser la traduccion)
h: human readable, mostrar los detalles de forma que un humano los pueda entender
e: especifica el shell remoto a utilizar, en nuestro caso ssh en el puerto 1234, obviamente hay q reemplazar por el puerto que corresponda (22 en un caso normal)

No comments:

Followers

About me

Santa Fe, Argentina
Programador Web, PHP, MySQL, JQuery, Administrador Linux. LAMP, Lighttpd, Nginx.