Casi todas las copias guardan los archivos y la base de datos, y casi todas las restauraciones fallan después por algo que nunca estuvo en ellas. Una copia está completa cuando restaurarla en un servidor desnudo produce un sitio que funciona sin teclear nada de memoria.
Los dos evidentes
- Los archivos del sitio, subidas incluidas, que a menudo están en otro disco y por eso se quedan fuera.
- La base de datos, volcada en vez de copiada mientras está en marcha.
mysqldump --single-transaction --quick --routines --triggers --events dbname | gzip > db.sql.gz
--single-transaction toma una instantánea coherente sin bloquear el sitio. --routines, --triggers y --events incluyen las partes que un volcado a secas deja fuera en silencio.
Los cuatro que se olvidan
- El correo. Está en el mismo servidor y nunca en la copia del sitio. Perder cinco años de correo es peor que perder el sitio.
- Las tareas programadas. No son archivos de tu sitio.
crontab -l, y guarda el resultado. - La configuración del servidor. El bloque de Nginx, el pool de PHP, el certificado. Reconstruir eso de memoria es la parte más lenta de cualquier restauración.
- El DNS. Una exportación de la zona. Rehacer treinta registros a mano con el sitio caído es exactamente tan malo como suena.
crontab -l > cron.txt
cp -a /etc/nginx/sites-available/mysite .
cp -a /etc/php/8.3/fpm/pool.d/mysite.conf .
Y las credenciales
Una copia cifrada cuya clave solo estaba en el servidor que murió no es una copia. Guarda la clave en otro sitio, y anota dónde.
La prueba que lo demuestra
Restaura en un servidor vacío sin abrir ningún otro documento. Todo lo que tengas que consultar en otra parte es justo lo que le falta a la copia.
Las copias automáticas de EGPHP cubren archivos, bases de datos y correo, y EGPNL restaura cualquiera de ellas por separado. Esta página es la lista de comprobación para todo lo que respaldes por tu cuenta.
