Programar copias de seguridad automáticas debe ser algo tan importante como tener tu web online.
En este caso, vamos a ver cómo programar una copia de seguridad de los archivos que queramos y, también, de la base de datos en nuestro cPanel. Esto es válido para todos los gestores de contenido (al menos que yo conozco).
Veamos cómo programar las copias de seguridad.
Lo primero de todo: nuestra estructura de carpetas. Normalmente el directorio raíz del alojamiento debe ser algo así como /home/CUENTAENHOST/. En adelante a CUENTAENHOST le llamaremos «account».
Aquí es donde están todos los archivos correspondientes a nuestro hosting, y cuando digo «todo» me refiero a QUE TENGAS CUIDADO CON LO QUE HACES!!! Si no sabes algo, busca o pregunta. No me puedo hacer responsable de lo que hagáis pero los pasos que voy a dar no implican borrar nada, así que… al lío.
Entramos en cPanel para comenzar.
Vamos a crear una carpeta en nuestra raíz (ya sabes, /home/account/nueva-carpeta) con el nombre que queramos. Vamos a ser creativos… vamos a llamarla backups!
Ve al gestor de archivos y crea dicho directorio en la raíz, donde se almacenarán las copias de seguridad:
/home/account/backups

Programar copias de seguridad con CronJobs en cPanel es muy sencillo.
Ahora vamos a crear los trabajos cronológicos o cronjobs:

Seleccionamos la temporalidad del trabajo. cPanel tiene varios ciclos predeterminados. Podemos usar uno de ellos o personalizarlo nosotros mismos. Es fácil.

Una vez elegido el periodo vamos a crear al comando. En este caso, como indicamos antes, serán 2 cronjobs: uno para los archivos y otro para la base de datos. Lo normal es que la cronología de las 2 tareas sean iguales aunque podemos personalizarlas al gusto. Por ejemplo, hacer copia de los archivos 1 vez a la semana y una copia de la base de datos diaria, pero eso lo dejo a vuestra elección.
El comando para copiar los archivos será el siguiente:
tar czvf /home/account/backups/backup
_$(date +\%Y-\%m-\%d)_archivos.tgz ./public_html
Este comando creará un archivo compactado del contenido de la carpeta /public_html (que es donde normalmente se encuentran los datos de la web, aunque puede variar de nombre, como web o www o algo así. Revisádlo antes!) en la carpeta backups con el nombre backup_AÑO_MES_DIA_archivo.tgz
Ahora, creamos la tarea para la copia de seguridad de la base de datos. Necesitaremos los siguientes datos para configurar la tarea:
DBUSER: Usuario de la base de datos.
DBPASSWORD: Contraseña de dicho usuario para la base de datos.
DBNAME: Nombre de la base de datos.
Los parámetros cronológicos igual que la tarea anterior y el comando el siguiente:
mysqldump -uDBUSER -pDBPASSWORD DBNAME | gzip > /home/account/backups/backup_$(date +\%Y-\%m-\%d)_basededatos.gz
Este comando creará un DUMP de la base de datos comprimido en un archivo llamado backup_AÑO_MES_DIA_basededatos.tgz
He elegido este formado de nombre porque es muy fácil localizarlos ordenando por nombre.
Adicionalmente el sistema envía un email informando que la tarea se ha ejecutado. Configura el email al que quieras recibir dicho aviso.
NOTA: Mi recomendación para ver que todo funciona es que las tareas las creéis con una temporalidad BAJA, quiero decir, cada 5 minutos o algo así… para ver que los archivos se crean correctamente y, si todo va bien, volver a configurarlos con el ciclo elegido (semanal, mensual…)
Agradecimientos y fuentes:
Claro y conciso. Me ha sido de gran utilidad. Muchísimas gracias.
Me alegro que te haya gustado. Te recomendaría echar un vistazo a esta otra entrada sobre las copias de Wordpress automáticas de la base de datos. Si no usas Wordpress pero si otro CMS quizás puedas adaptarlo.
Muchas gracias por la ayuda y compartir tus conocimientos, Dios te bendiga.
Gracias a ti por comentar. Siempre es bueno compartir cosas que te ayuden y cuanto más simples mejor! XD Dios te bendiga a ti también.
Excelente aporte, el post ya tiene sus años pero todavía es de gran ayuda para muchos.
Saludos!!!
Gracias! Es código «retro» XD