Sencillo shell script para hacer un backup de tu CMS en formato tgz

El otro día en este post explicamos cómo hacer 1 copia de seguridad de 1 BBDD MySQL con la herramienta mysqldump sin utilizar ningún password, de modo que pudiéramos automatizar dicha tarea. Y terminamos escribiendo un shell script para administrar el backup.

También comentamos que en la práctica muchas personas hacen sus copias de seguridad de bases de datos con plugins de CMS, sin embargo programar nuestros shell scripts también nos puede ayudar a hacer backups de cualquier cosa.

Pues bien, el tip de hoy es un poco parecido al del otro día. Vamos a programar un shell script muy sencillo para hacer una copia de seguridad de todos los archivos que componen nuestro CMS.

Copia de seguridad

Como teníamos que organizarnos de algún modo, nosotros terminamos montando esta estructura de directorios para poner nuestros scripts y nuestros backups:

Puestos a ver algún ejemplo concreto, yo supongo que el CMS que vamos a copiar es un WordPress, por eso tenemos la carpeta /root/backups/miproyecto.com/wp, como diciendo que ahí pondremos los backups de los archivos que componen nuestro WordPress (archivos de configuración, plantillas, plugins, etc.) de miproyecto.com.

Archivo wp.sh:

El comando que hace la copia de nuestro WordPress (en formato tgz) es este:

La orden anterior comprime la carpeta indicada por medio de la utilidad tar.

El script wp.sh se puede ejecutar manualmente así:

Esto creará en /root/backups/miproyecto.com/wp el archivo tar comprimido con un nombre parecido a 08-29-2014-1409306693.tgz, con ese formato.

Al nombre de archivo del backup le añadimos un timestamp para evitar las colisiones de nombres. De este modo podemos hacer en 1 día tantos backups como necesitemos, manteniendo por otro lado un nombre de archivo fácil de leer para una persona.