InicioLinuxhaciendo copias remotas exactas con RSYNC y linux

haciendo copias remotas exactas con RSYNC y linux

Linux7/19/2008
Buenas gente esta es otra de las cosas que todo el mundo sabe pero a la hora de usarlas nadie recuerda como o que era lo que hacia.

¿Para que sirve?
Se trata del programa rsync. Nunca les paso que tienen que replicar un directorio o un arbol de directorios en una maquina remota y creen que con el scp se van a mandar macana? bueno para esto está rsync.

Veamos un ejemplo tipico

Metámonos en el escenario. Les encargaron hacer una migración de un servidor completo a una maquina mas potente. Bien levantaron el sistema operativo, instalaron apache, php, mysql, phpmyadmin y ahora tienen que transferir archivos que estaban por ejemplo en /var/www y la base entera. Una solución sería usar el comando scp viejo y conocido y esperar a que termine. El problema de esto es que los archivos que se le pasan como parametro, son limitados. Esta última semana me tocó esa tarea y me dí cuenta que mis 9 mil y pico de directorios eran demasiado para el pobre.
Se me prendió la lamparita y se me ocurrió recorrer con un for la salida de un ls -1 y así, iba copiando directorio por directorio con scp $i es decir, tomando como argumento el índice del For. Macanudo, tardo pero anduvo. El problema fue grande cuando a la otra mañana luego de terminado el proceso, al hacer un du -h del destino y del fuente me encontre con que había una diferencia de 1GB. Listo me termine de cansar.

Acá es donde entra el rsync, este programa arma una lista de archivos tanto del directorio local que se quiere copiar, como del directorio destino y se encarga de buscar las diferencias (presuntamente con diff) y se encarga de copiar solo lo que no exista en uno minimizando así la transferencia y el tiempo total.

Instalación

en debian, solo basta poner en linea de comandos:
apt-get install rsync
tanto local como remotamente. En otras distros probar con emerge, yast etc.

Modo de uso

El uso mas simple es el de sincronizar dos directorios cualquiera con la opcion -a. Esta opción resume unas cuantas ejemplo:
-r: para que recorra toda la estructura de directorios
-l: para que mantenga enlaces simbolicos
-p: para que mantenga permisos en archivos y subdirectorios
-t: para que mantenga la hora y fecha
-g: para que mantenga grupo
-o: para que mantenga dueño (owner)
-D: para que manenga archivos de dispositivo (root)
en resumen el modo -a es el modo Archive.

la sintaxis básica entonces es la siguiente:
rsync /var/www/ root@ipremota:/var/www/
guarda con el uso del root de manera directa.

Notar que en ambos paths absolutos incluí la "/" al final. Esto es importante, ya que poner /var/www/ no es lo mismo que /var/www una manera se refiere al directorio y otra al contenido, para que todo marche bien el formato debe ser identico en ambos.

Bueno luego de esto rsync empieza a crear las listas de archivo, esto demora un poco y como no me iba a quedar tarde en el trabajo a esperar que se haga todo el proceso y tener que dejar la maquina encendida, usé el programita screen.

Screen
Screen como ya explique en otro post, sirve para lanzar procesos sin tener que tener al padre (la ventana de terminal) corriendo, pudiendo cerrar la terminal o apagar la pc directamente sin miedo a que esto nos mate el proceso.

En relacion a rsync, antes de tirar el comando, hago lo siguiente:
1- me logueo desde mi pc, en la maquina que hay q migrar con ssh: ssh usuario@maquinaAmigrar
2.1- ejecuto screen, ahi mismo nos habre una terminal dentro de la original y nos muestra una leyenda de ayuda.
2.2- ejecuto el comando rsync con sus parámetros
2.3- cierro la ventana de la terminal, con eso se tendría que haber muerto el proceso padre y por lo tanto el hijo, el rsync que lanze.
2.4 vuelvo a loguearme a la maquina a migrar. ejecuto screen -list y ahi nomas me muestra las terminales que estan "desatachadas" algo de este estilo:

user@laptopRasta:~$ screen -list
There is a screen on:
23669.pts-1.laptopRasta (Detached)
1 Socket in /var/run/screen/S-user.

jdiaz@laptopRasta:~$

listo veo que quedo andando todo, me voy, apago mi maquina.

3- al otro dia llego y me fijo como quedo todo, me vuelvo a loguear en la maquina a migrar, me fijo con screen -list y veo que todavia sigue desatachada la terminal, la atacho con:
screen -r 23669
(23669 es el numero de pid)
y voila!, volvemos al rsync como lo dejamos. Si tenemos suerte de que terminó el proceso, directamente vemos como quedaron los resultados.

Saludos!

post de rsync que explica muy bien sus articulos:
http://www.vicente-navarro.com/blog/2008/01/13/backups-con-rsync/

post mio sobre screen:
Datos archivados del Taringa! original
0puntos
2,782visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

No hay comentarios nuevos todavía

Autor del Post

r
rastamanlp🇦🇷
Usuario
Puntos0
Posts8
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.