Copia de seguridad de Magento: crear y restaurar
Las copias de seguridad periódicas son esenciales para cualquier tienda online con Magento. En esta guía aprenderás a crear y restaurar copias de seguridad completas.
¿De qué debes hacer una copia de seguridad?
Una copia de seguridad completa de Magento consta de:
- Base de datos: todos los productos, pedidos, clientes y la configuración
- Multimedia: imágenes y archivos subidos (
pub/media/) - Código: código personalizado y extensiones (
app/code/) - Configuración:
app/etc/env.phpyapp/etc/config.php - Tema: archivos de temas personalizados (
app/design/)
Crear una copia de seguridad de la base de datos
Con phpMyAdmin
- Inicia sesión en DirectAdmin
- Ve a phpMyAdmin
- Selecciona tu base de datos de Magento
- Haz clic en Exportar
- Elige Rápido para una exportación estándar
- Haz clic en Continuar y descarga el archivo SQL
Por línea de comandos
# Ve a la raíz de Magento
cd /pad/naar/magento
# Crea una copia de seguridad de la base de datos con marca de tiempo
mysqldump -u gebruiker -p database_naam > backup_$(date +%Y%m%d).sql
Los datos de la base de datos (nombre, usuario, contraseña) están en app/etc/env.php, en 'db' => 'connection' => 'default'. En una tienda que sigue en línea, añade --single-transaction para que el volcado sea coherente sin bloquear tablas: mysqldump --single-transaction -u gebruiker -p database_naam > backup.sql.
Con la CLI de Magento
Magento también tiene su propio comando de copia de seguridad. Esa función está desactivada de forma predeterminada, así que primero debes activarla:
bin/magento config:set system/backup/functionality_enabled 1
bin/magento setup:backup --db
Con --code y --media incluyes también el código y los archivos multimedia. Las copias de seguridad se guardan en var/backups/. Adobe marca esta función como obsoleta; para tiendas grandes, mysqldump es más fiable.
Copia de seguridad comprimida
Para bases de datos grandes:
mysqldump -u gebruiker -p database_naam | gzip > backup_$(date +%Y%m%d).sql.gz
Crear una copia de seguridad de los archivos
Con File Manager
- Ve a File Manager en DirectAdmin
- Ve a tu instalación de Magento
- Selecciona las carpetas importantes:
pub/media/(imágenes)app/code/(módulos personalizados)app/design/(temas)app/etc/(configuración)
- Haz clic en Compress para crear un ZIP
- Descarga el ZIP
Por línea de comandos
# Sube un nivel por encima de la raíz de Magento
cd /pad/naar/
# Crea una copia de seguridad completa
tar -czvf magento_backup_$(date +%Y%m%d).tar.gz magento/
# O solo de carpetas concretas
tar -czvf media_backup_$(date +%Y%m%d).tar.gz magento/pub/media/
Por FTP
- Conéctate con un cliente FTP (FileZilla)
- Descarga toda la carpeta de Magento
- O descarga solo las carpetas críticas
Copia de seguridad de Magento
Magento incluye una función integrada de copia de seguridad:
Copia de seguridad desde el panel de administración
- Ve a System > Tools > Backups (está desactivada de forma predeterminada; actívala en Stores > Configuration > Advanced > System > Backup Settings; Adobe marca esta función como obsoleta)
- Elige el tipo de copia de seguridad:
- System Backup: solo archivos
- Database Backup: solo base de datos
- Database and Media Backup: ambos (recomendado)
- Haz clic en el botón de la copia de seguridad que quieras
- Espera a que la copia de seguridad termine
Atención: este método puede agotar el tiempo de espera en tiendas grandes. En ese caso, usa la línea de comandos.
Copia de seguridad por CLI
Para hacer una copia de seguridad por línea de comandos, usa mysqldump o bin/magento setup:backup, como se describe más arriba en la creación de una copia de seguridad de la base de datos. Los comandos support:backup:db y support:backup:code que aparecen en algunas guías pertenecen a las Support Tools de Adobe Commerce y no existen en Magento Open Source.
Restaurar una copia de seguridad
Restaurar la base de datos con phpMyAdmin
- Ve a phpMyAdmin
- Selecciona tu base de datos (o crea una nueva)
- Haz clic en Importar
- Selecciona tu archivo SQL de copia de seguridad
- Haz clic en Continuar
Restaurar la base de datos por línea de comandos
# Descomprime si hace falta
gunzip backup.sql.gz
# Importa la base de datos
mysql -u gebruiker -p database_naam < backup.sql
Restaurar los archivos
- Sube la copia de seguridad al servidor (por FTP o con File Manager)
- Descomprime el archivo en la ubicación correcta
- Comprueba los permisos de los archivos
# Descomprimir
tar -xzvf magento_backup.tar.gz
# Restablecer los permisos
find var generated pub/static pub/media -type d -exec chmod 755 {} \;
find var generated pub/static pub/media -type f -exec chmod 644 {} \;
Acciones después de restaurar
# Actualizar la base de datos y los módulos
bin/magento setup:upgrade
# Vaciar la caché
bin/magento cache:clean
bin/magento cache:flush
# Reconstruir los índices
bin/magento indexer:reindex
# Compilar DI
bin/magento setup:di:compile
# Desplegar el contenido estático
bin/magento setup:static-content:deploy nl_NL
Copias de seguridad automáticas
Con una tarea cron
Configura una tarea cron para hacer copias de seguridad automáticas:
# Copia de seguridad diaria de la base de datos a las 3:00
0 3 * * * /usr/bin/mysqldump -u user -p'pass' database | gzip > /backups/db_$(date +\%Y\%m\%d).sql.gz
# Copia de seguridad completa semanal los domingos a las 4:00
0 4* * 0 tar -czvf /backups/full_$(date +\%Y\%m\%d).tar.gz /pad/naar/magento
Rotación de copias de seguridad
Elimina automáticamente las copias de seguridad antiguas:
# Elimina las copias de seguridad de más de 30 días
find /backups/ -name*.gz" -mtime +30 -delete
Almacenamiento externo de copias de seguridad
Guarda las copias de seguridad fuera del servidor:
- Almacenamiento en la nube (AWS S3, Google Cloud, Dropbox)
- Servidor FTP externo
- Descarga local al ordenador
Buenas prácticas
- Copias de seguridad diarias de la base de datos: automatízalas con tareas cron
- Copias de seguridad completas semanales: incluidos los archivos
- Prueba tus copias de seguridad: restáuralas periódicamente en un entorno de pruebas
- Almacenamiento externo: conserva copias fuera del servidor
- Documenta: anota dónde están las copias de seguridad
- Cifrado: cifra las copias de seguridad con datos sensibles
- Conservación: guarda un historial de al menos 30 días
A 0 de 0 personas les ha resultado útil