Algunas personas me han pedido probar alguno de mis plugins de WordPress a nivel de administrador para saber si es realmente lo que necesitan antes de comprarlo.
He creado un entorno de pruebas (también llamado sandbox) aquí demo.vivirenremoto.com que permite acceso como administrador y que cada x horas se reinicia la base de datos para volver al estado inicial.
Requisitos
- Poder crear ficheros en una carpeta anterior a la zona pública de tu web, normalmente public_html, por ejemplo en /home/admin/.
- Acceso SSH para poder instalar dos2unix.
Instalación
1- Tienes que crear estos dos ficheros en alguna parte de tu servidor que no sea accesible de forma pública ya que contienen datos sensibles como la contraseña de la base de datos.
backup_demo_export.sh
Hacer backup de una base de datos mysql
backup_demo_import.sh
Restaurar backup de una base de datos mysql
2- Tienes que modificar las varibles con tus datos:
– DB_HOST: host donde tienes la base de datos, suele ser localhost.
– DB_USER: usuario de la base de datos.
– DB_PASS: contraseña de la base de datos.
– DB_NAME: nombre de la base de datos.
– DIR: donde se va a exportar e importar el fichero demo.sql.
3- Si tuvieras problemas de codificación al ejecutar te recomiendo instalar dos2unix y ejecutar:
dos2unix backup_demo_export.sh
dos2unix backup_demo_import.sh
4- Luego tienes que dar permisos de ejecución a estos dos ficheros para que los pueda ejecutar el cron:
chmod +x backup_demo_export.sh
chmod +x backup_demo_import.sh
Testear
Ejecuta el siguiente comando para exportar la base de datos:
./backup_demo_export.sh
Comprueba si se ha exportado correctamente la base de datos en un fichero demo.sql en la carpeta que has indicado.
Si quieres volver a la versión original de la base de datos puedes hacerlo manualmente ejecutando el comando:
./backup_demo_import.sh
Configurar cron
Si quieres que la base de datos se reinicie sola tienes que crear la tarea programada desde el panel de control de tu servidor o también puedes desde línea de comandos con «crontab -e».
Ejemplos:
Ejecutar cada media noche
0 0 * * * /home/admin/backup_demo_import.sh >/dev/null 2>&1
Ejecutar cada tres horas
0 */3 * * * /home/admin/backup_demo_import.sh >/dev/null 2>&1
Ejecutar a las 10:00 y 18:00
0 10,18 * * * /home/admin/backup_demo_import.sh >/dev/null 2>&1
Enlace de interés
Te recomiendo esta web https://crontab-generator.org/ para generar más fácilmente los horarios para un cron.