En ocasiones nos toca respaldar gran cantidad de información de un equipo a otro y una de las maneras más cómodas de hacerlo es a través de la red.
Para esta tarea usaremos Rsync que, al igual que netcat, son unas navajas suizas en lo que a red se refiere. Rsync, entre otras cosas, nos permite sincronizar directorios a través de la red y de esa forma lo usaremos para enviar nuestros archivos de un equipo a otro.
El símbolo ~ puede sustituirse por la ruta absoluta /home/satanas.
Con esta receta podremos pasar nuestro respaldo de archivos de un equipo a otro sin mucho inconveniente. Espero que les sirva
Comando y parámetros
Lo primero que necesitamos es acceso vía SSH al equipo remoto. Puede ser por clave pública o con usuario y contraseña. Luego nos ubicamos en la carpeta que queremos respaldar y ejecutamos el comando:$ rsync -ravz archivo_a_respaldar usuario@IP:directorio_destino
Donde:
- r: recorre los directorios de manera recursiva
- a: conserva los atributos de los archivos (usuario, permisos, etc)
- v: imprime información en pantalla
- z: comprime los datos antes de enviar
Copiar un archivo
Supongamos que queremos respaldar el archivo backup.tar.gz en un equipo remoto con IP 192.168.0.3, el usuario es satanas y el directorio destino es el home del usuario, el comando nos quedaría así:$ rsync -avz backup.tar.gz satanas@192.168.0.3:~
El símbolo ~ puede sustituirse por la ruta absoluta /home/satanas.
Copiar un directorio y todos sus subdirectorios
Ahora supongamos que queremos respaldar el directorio /tmp/music en el mismo equipo anterior pero ahora el destino es la carpeta /home/satanas/musica, el comando nos quedaría así:$ rsync -ravz /tmp/music satanas@192.168.0.3:/home/satanas/musica
Con esta receta podremos pasar nuestro respaldo de archivos de un equipo a otro sin mucho inconveniente. Espero que les sirva
9 comentarios:
Buenas tardes, deseo hacer una copia de archivos de una computadora con Windows 7 en mi red wifi hacia mi Macbook ejecutando el siguiente script desde automator pero no logro que funcione. me pueden ayudar por favor?
rsync -auv parishpg@centralhpglam: /Peru /Users/Paris/Documents/HPG
Hola Paris,
Estás usando incorrectamente la sintaxis del rsync. Debes colocar los parámetros, el origen (la ruta local a los archivos) y luego el destino, que viene formado por el usuario, la IP y la ruta remota sin espacios entre ellos: usuario@IP:/ruta/remota. Suponiendo que /Peru es tu ruta local y /Users/Paris/Documents/HPG es tu ruta remota quedaría:
rsync -auv /Peru parishpg@centralhpglam:/Users/Paris/Documents/HPG
Espero haberte ayudado.
Saludos
Muchas gracias Wil! aunque no estoy seguro de haberme explicado bien: en mi empresa trabajamos todos los documentos en la PC que tiene Windows conectandonos por red... esto funciona a manera de "servidor" pero solo es una PC. Yo me conecto al servidor desde mi Macbook para trabajar. Lo que quiero es luego tener copia actualizada de todo lo grabado en el servidor para llevarmelo en la Macbook en reuniones con mis clientes. Entonces, el origen es a PC con Windows y el destino es mi Macbook, ejecutando el script desde mi Macbook. Ayúdame por favor hermano!
Paris,
En ese caso quedaría muy parecido a lo que posteaste al principio, solo que debes eliminar el espacio entre la ruta y los dos puntos (:) que siguen a la IP de la máquina windows, sería:
rsync -auv parishpg@centralhpglam:/Peru /Users/Paris/Documents/HPG
Si te fijas, seguimos usando la sintaxis origen-destino, solo que el origen lo accedemos vía ssh con el usuario y el host correspondientes.
Intenta y me avisas que tal te va
Gracias WIl. Desde ayer quiero responderte pero he tenido un dìa muy intenso. he probado y me sale el siguiente error:
ssh: Could not resolve hostname centralhpglam: nodename nor servname provided, or not known
Un abrazo,
Paris,
Eso es porque el DNS no puede resolver el nombre centralhpglam, es decir no sabe a qué equipo está asociado. Recuerda que eso no es el nombre del equipo sino la IP. Intenta buscar la IP del equipo Windows y prueba con eso.
Me imagino que tienes un servidor de SSH en Windows, de lo contrario tampoco te funcionará.
Saludos
He obtenido el IP y modificado el script asi:
rsync -auv parishpg@192.168.1.35:/Peru /Users/Paris/Documents/HPG
Sin embargo, se queda "pensando" (timeout)
Como es el tema del servidor SSH en windows?
Gracias!
Paris,
La configuración de un server ssh escapa del alcance de esta receta. Te recomiendo que busques en google "ssh server windows" y estoy seguro que encontrarás mucha información de cómo instalarlo/configurarlo. Es lo primero que necesitas para que te funcione la copia con rsync.
Saludos
gracias Wil. Me pongo a buscar.
Publicar un comentario