Crear un backup automático de nuestro hosting a Dropbox

publicado en la categoría Hosting

Desde hace tiempo vengo buscando una manera de respaldar mi hosting de forma automática, ya que hacerlo manualmente se vuelve tedioso, uno se olvida, se deja estar.

Por otro lado, no sabía como crear tareas programadas en Linux, más allá de que sabía que existe algo llamado cron, y que no tenía la menor idea de como se usaba. Hasta que buscando info, me encontré con este artículo de DesdeLinux , y parecía sencillo de aplicar.

Teniendo una idea básica de como crear tareas programadas, nos queda saber cómo y a donde vamos a respaldar los archivos del hosting. La idea será comprimir cada sitio en un archivo .tgz, y luego subir cada uno de estos archivos correspondientes a cada sitio a una cuenta de Dropbox.

Para esto he creado un shell script llamado backup.sh, y que contiene lo siguiente:

#!/bin/bash

tar cvfz /home/admin/respaldos/sitio1.tgz /home/admin/sitio1.com
tar cvfz /home/admin/respaldos/sitio2.com.tgz /home/admin/sitio2.com

php /home/admin/respaldos/backup.php

Como se puede ver en el script, tengo una carpeta respaldos, donde comprimo los sitios. Allí también alojo dos archivos que son backup.sh y backup.php, que es el script que se encargará de subir los archvos a Dropbox.

El archivo backup.php está basado en DropboxUploader , una clase php con todas las funciones que necesitamos para Dropbox.

En este caso he incluido la clase dentro de backup.php, con algunos agregados:

Allí debemos reemplazar el valor del array $sitios (sitio1.com y sitio2.com) por el o los dominios que queramos respaldar. Si tenemos más, los agregamos al mismo array.

Por último nos queda hacer que backup.sh se ejecute todos los días. Para ello escribimos lo siguiente en un terminal:

env EDITOR=nano crontab -e

Agregamos la siguiente línea y guardamos el archivo:

00 00 * * * sh /home/admin/respaldos/backup.sh

Esto significa que el script se ejecutará todos los días a la medianoche (00:00).