Primeros pasos con Rsync y Applescript

Una característica importante de rsync no encontrada en la mayoría de programas o protocolos es que la copia toma lugar con sólo una transmisión en cada dirección. rsync puede copiar o mostrar directorios contenidos y copia de archivos, opcionalmente usando compresión y recursión.

Esta aplicación está disponible en Mac OS X a través del Terminal. Sus opciones son muy amplias (y llegan a ser complejas para los no iniciados) así que hoy vamos a ver el funcionamiento de Rsync desde una perspectiva simple que nos permita disponer de una copia de seguridad inmediata de una carpeta en la que tenemos una serie de documentos en los que estamos trabajando.

Ejemplo

Imaginemos (como es el caso) que estamos trabajando en un proyecto muy importante del que queremos mantener una copia de seguridad actualizada al minuto para que no se pierda ni un solo documento en el caso de que haya un problema. Para ello, vamos a crear una acción de carpeta que dispare un script que ejecute Rsync de forma que cuando guardemos un documento o añadamos un documento nuevo a la carpeta inmediatamente se sincronice con la carpeta de destino, de forma que independientemente de nuestra copia de seguridad de Time Machine (o por otros medios), dispongamos de una copia de seguridad adicional actualizada con los ultimísimos cambios.

Lo primero que vamos a hacer es abrir el Editor de Scripts y añadir estas líneas:

on adding folder items to this_folder after receiving added_items

try

do shell script “rsync -at –delete /Volumes/UFO/Cursos/Volumes/TARDIS”

end try

end adding folder items to

Qué hace cada cosa

  1. do shell script ” “: es lo que indica a Applescript que tiene que ejecutar un comando de Terminal
  • rsync -at --delete: es la orden a Rsync. -a indica el modo archivo, t hace que se mantengan las fechas originales de los archivos. --delete elimina de la copia de seguridad los archivos eliminados de la copia original.
  • /Volumes/UFO/Cursos /Volumes/TARDIS: son las rutas de la carpeta de origen y la de destino. Recuerda que después de rsync -at --delete debes dejar un espacio en blanco y detrás de la ruta a la carpeta de origen, otro espacio para la ruta del disco/carpeta de destino.
  • Si por algún motivo especial necesitaras la contraseña del administrador y para realizar el proceso te la solicitara y no quieres cuadros de diálogo, añade después de las comillas with administrador privileges

Una vez tengas el script hecho, guardalo en Librería > Scritps > Folder Action Scripts. Ahora tienes que activar las Acciones de Carpeta, haciendo click alternativo con el ratón en la carpeta de origen y activando ese script en concreto para esa carpeta.

A partir de ese momento, cuando añadas un archivo a la carpeta, inmediatamente se sincronizará con la carpeta de la copia de seguridad. Si has modificado algún archivo de la carpeta, también se sincronizará, y si has borrado algún archivo de la carpeta origen, también desaparecerá de la carpeta destino.

Enlaces relacionados

 

0 0 votos
Article Rating
Subscribe
Notify of
7 Comments
Oldest
Newest Most Voted
Opiniones Inline
Ver todos los comentarios
carloscercedilla
carloscercedilla
6 years ago

Buenas. Me encantan tus tutoriales. Se están convirtiendo en lecturas casi diarias de lo que se puede hacer con OSX.
Estoy intentando ejecutar este script
on adding folder items to this_folder after receiving added_items
try
do shell script “rsync -at –delete /Volumes/HOME/origen /Volumes/destino”
end adding folder items to
y me da el “Error de sintaxis: Se esperara “try”, etc. pero se ha encontrado nombre de comando”.
¿que estoy haciendo mal?.
Muchas gracias y un saludo.

carloscercedilla
carloscercedilla
6 years ago

Muchas gracias por tu pronta respuesta. No consigo que funcione el script. En la carpeta origen activo el script que he creado y no hace ninguna copia de archivos. ¿Qué puedo hacer?.
Muchas gracias de nuevo.

carloscercedilla
carloscercedilla
6 years ago

Buenas. Siento tan pocas indicaciones. Después de activar el script en la carpeta origen no hace copia de seguridad en carpeta destino. Cuando añado o elimino archivos en carpeta origen en la carpeta destino no se añade o elimina ningún archivo.
Muchas gracias

meizudo
meizudo
6 years ago

Hola Carlos, yo tambien he probado a hacer el script y me ocurre lo mismo que a carloscercedilla.
Le has contestado algo a el que no quedó reflejado en la web?

7
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x