Respaldo de nuestro blog
Monday, January 7th, 2008Por muchos motivos es muy recomendable respaldar nuestros archivos, especialmente si contamos con un sitio web, ya que cualquier problema que tengamos con el sistema de archivos, tendremos una copia de respaldo y podremos recuperar el servicio.
Otra ventaja de hacer respaldos es que si contamos con un blog propio, por ejemplo con Wordpress, estos contienen varias vulnerabilidades de seguridad muy conocidas que pueden ser aprovechados por crackers.
Si tenemos el blog sobre una plataforma GNU/Linux, podemos utilizar las herramientas que nos provee para hacer los respaldos y automatizarlos. Utilizaremos
- Pdumpfs, para respaldar
- Crontab, para automatizar
Crontab, viene ya en todas las plataformas GNU/Linux y Unix, por lo que sólo deberemos instalar pdumpfs. Antes que nada la explicación tiene en cuenta cualquier distribución basada en Debian, pero esto no implica que no se pueda ejecutar en otras, sólo hay que hacer cambios menores. Primero verificaremos que si lo tenemos instalado
# aptitude search pdumpfs
p pdumpfs - a daily backup system similar to Plan9’s d
p pdumpfs-rsync - pdumpfs extension using rsync
El comando busca todos los paquetes que concuerden con la cadena que le pasamos como parámetro, en este caso pdumpfs. Los paquete que concuerden se muestran en una lista, como se puede ver cada línea comienza con la letra p, que significa que el paquete no está en el sistema; si lo hubiésemos tenido instalado tendría el estado i, que se encuentra instalado.
Como el paquete lo tenemos en el estado p, vamos a instalarlo
#aptitude install pdumpfs
Pdumpfs es un programa muy sencillo, pero potente, al igual que el lenguaje en que fue desarrollado Ruby, escrito por Satoru Takabayashi. La sintaxis sería
pdumps [directorio-fuente] [directorio-destino]
Dentro del directorio destino se crea un directorio llamado YYYY/MM/DD, que indica el año, el mes y el día respectivamente en que ejecutamos el comando.
Por ejemplo para realizar el respaldo cree una carpeta backup en un disco que monté, para respaldos que se encuentra en /mnt/sdb1
#pdumpfs /var/www/blog /mnt/sdb1/backup
Ahora debemos automatizar el proceso, para eso bastará con editar nuestra tabla cron, que se encuentra /etc/crontab. Voy a indicar en la tabla que este proceso se ejecute todos los días a las 5:00 AM. Para esto hacemos
#echo "0 5 * * * root pdumpfs /var/www/blog /mnt/sdb1/backup >> /etc/crontab
Para mayor información sobre la sintaxis de la tabla cron consultar aquí.
Resultó muy sencillo, ahora vamos a hacer al proceso un poco más robusto. Es importante que mantegamos log sobre el proceso de respaldo y también log de los errores que podrían surgir. Esto se puede hacer agregando un par de parámetros más al ejecutar pdumpfs. Tendríamos que ejecutar este comando en vez del anterior o editar la tabla cron
#echo "0 5 * * * root pdumpfs /var/www/blog /mnt/sdb1/backup >/mnt/sdb1/backup/log/pdumpfs.log 2>/mnt/sdb1/backup/log/error.log" >> /etc/crontab
Aquí cree una nueva carpeta log dentro de la carpeta backup y indico que el archivo de log se llame pdumpfs.log. Luego indico que la salida de error estándar (indicada por el 2) se redirija a /mnt/sdb1/backup/log/error.log. Por lo tanto si hay error se escribirá en el archivo error.log.
Listo con esto tenemos un sistema de respaldo automatizado, algo que vale la pena comentar es que todos los archivos son copiados la primera vez que respaldamos, pero luego pdumpfs sólo copia los archivos nuevos o actualizados y los que no fueron cambiados los mantiene como links en duro de los archivos del respaldo anterior, esto produce una gran eficiencia en el uso de la memoria.
