Respaldos automáticos con rsync y cron

Vamos a crear un archivo ejecutable llamado rsync_script y luego vamos a permitir ejecutarlo con:

$ chmod +x rsync_script

El contenido del archivo va a ser:

#!/bin/sh
rsync -e 'ssh -p 22' -avzp /home/guru/prueba IPhostRemoto:/home/usuario/respaldos

El comando rsync copia el contenido de un directorio local a uno remoto. En este ejemplo, copiamos contenido desde nuestra VPS: /home/guru/prueba al directorio /home/soporte/respaldos ubicado en el equipo remoto cuya IP o nombre de dominio es IPhostRemoto. Además, especificamos que la conexión ssh va a usar el puerto 22. Es importante destacar que vamos a ejecutar rsync en el VPS, así este enviará al remoto los archivos que este último no tenga en el directorio. Los archivos que ya existen en el servidor remoto no serán eliminados y los que tengan el mismo nombre serán REEMPLAZADOS por los que se encuentren en el directorio local.

Pero antes de programar la ejecución automatizada vamos a poner a prueba si está trabajando bien nuestro comando rsync, ejecutándolo una vez y comprobando si sincronizó exitosamente el contenido del servidor hacia nuestro equipo:

$ rsync -e 'ssh -p 22' -avzp /home/guru/prueba [email protected]:/home/usuario/respaldos

Si el comando copió los archivos correctamente desde el VPS hacia nuestra carpeta /home/usuario/respaldos proseguimos a programarlo con cron.

 Por defecto nuestras VPS con Linux tienen instalado cron y lo único que tenemos que realizar es copiar o mover el script que creamos (rsync_script) a la carpeta /etc/cron.FRECUENCIA donde las opciones para la frecuencia de respaldo son:

hourly (por hora), daily (diario), weekly (semanal), monthly (mensual)

Ejemplo:

$ mv rsync_script /etc/cron.daily

El omenado del ejemplo va a permitir que todos los días se ejecute automáticamente el script que contiene la sincronización con rsync.

Para más opciones de respaldo e información extra puedes consultar la siguiente guía: Cron How To

Back to top