Cómo hacer una copia de seguridad de una base de datos en DirectAdmin desde la terminal
Introducción: ¿Por qué necesitas copias de seguridad de tu base de datos?
Si tienes una web dinámica (como WordPress, Joomla o una tienda online), tu base de datos es el corazón de tu proyecto. Contiene tus artículos, productos, clientes y configuraciones. Perderla sería un desastre.
Imagina que un plugin falla, un hacker borra tus tablas o el disco duro del servidor muere. Sin una copia de seguridad, tendrías que reconstruirlo todo desde cero. Por eso, dominar el backup mysql directadmin ssh es una habilidad esencial para cualquier administrador de sitios web.
En esta guía, te enseñaré a realizar copias de seguridad de tu base de datos MySQL o MariaDB usando DirectAdmin y la terminal (SSH). Aunque DirectAdmin tiene un panel gráfico, la terminal te da más control, velocidad y flexibilidad, especialmente para automatizar tareas con cron backup base datos.
No te preocupes si nunca has usado la terminal antes. Voy a explicarlo paso a paso, como si fueras un principiante total. Al final, tendrás un sistema de copias seguridad directadmin robusto y automatizado.
Requisitos previos: Lo que necesitas antes de empezar
Antes de lanzar comandos, asegurémonos de que tienes todo listo. Esto te ahorrará frustraciones.
Acceso SSH a tu servidor
Necesitas un cliente SSH. En Windows puedes usar PuTTY o el terminal integrado de Windows 10/11. En Mac o Linux, abre la aplicación "Terminal".
Datos de conexión
Debes tener tu dirección IP o dominio, el usuario principal de DirectAdmin (normalmente admin) y su contraseña. Si no tienes acceso SSH, contacta con tu proveedor de hosting para activarlo.
Herramientas de línea de comandos
DirectAdmin incluye MySQL y MariaDB. Las herramientas principales que usaremos son:
mysqldump: para exportar la base de datos.mysql: para importarla o consultarla.crontab: para programar tareas automáticas.
Verifica que están instaladas. Conéctate por SSH y escribe:
which mysqldump
which mysql
Si ves rutas como /usr/bin/mysqldump, estás listo. Si no, avísame y te ayudo.
Primer paso: Conectarse por SSH a tu servidor
Para empezar, abre tu terminal y escribe:
ssh usuario@tu-dominio.com
Sustituye usuario por tu usuario principal de DirectAdmin (normalmente admin). Te pedirá la contraseña. Escríbela y pulsa Enter.
[TIP] Si es la primera vez que te conectas, te preguntará si confías en el servidor. Escribe
yesy Enter.
Una vez conectado, verás algo como admin@servidor:~$. Ya estás dentro.
Segundo paso: Localizar tu base de datos y sus credenciales
DirectAdmin organiza las bases de datos bajo tu usuario. Para listar las bases de datos disponibles, usa:
mysql -u admin -p -e "SHOW DATABASES;"
Te pedirá la contraseña de MySQL (no la de SSH). Normalmente es la misma que la de DirectAdmin, pero puede ser distinta. Si no la recuerdas, búscala en el panel de DirectAdmin > "MySQL Management".
Verás una lista como esta:
+--------------------+
| Database |
+--------------------+
| usuario_miweb |
| usuario_pruebas |
| information_schema |
+--------------------+
Apúntate el nombre exacto de la base que quieres respaldar (por ejemplo, usuario_miweb).
[WARNING] No uses
information_schemaniperformance_schema. Son bases internas del sistema.
Tercer paso: Realizar tu primer backup con mysqldump
Ahora viene la magia. El comando mysqldump exporta la estructura y los datos de tu base a un archivo SQL.
Comando básico
mysqldump -u admin -p usuario_miweb > /ruta/donde/guardar/miweb.sql
-u admin: usuario de MySQL.-p: te pedirá la contraseña.usuario_miweb: nombre de tu base de datos.>: redirige la salida a un archivo./ruta/donde/guardar/miweb.sql: la ruta absoluta donde quieres guardarlo. Por ejemplo,/home/admin/backups/miweb.sql.
Ejemplo práctico
mkdir -p /home/admin/backups
mysqldump -u admin -p usuario_miweb > /home/admin/backups/miweb.sql
Se te pedirá la contraseña de MySQL. Después, espera unos segundos. Si no hay errores, verás el prompt de nuevo.
Verifica que el archivo se creó:
ls -lh /home/admin/backups/miweb.sql
Deberías ver un archivo con tamaño en KB o MB.
[TIP] Añade la fecha al nombre del archivo para identificar versiones. Por ejemplo:
miweb_2025-03-15.sql.
Cuarto paso: Añadir compresión para ahorrar espacio
Los archivos SQL pueden ser grandes. Comprimirlos con gzip reduce el tamaño hasta un 90%. Es una práctica recomendada.
Comando con compresión
mysqldump -u admin -p usuario_miweb | gzip > /home/admin/backups/miweb.sql.gz
El símbolo | (pipe) envía la salida de mysqldump directamente a gzip, que la comprime antes de guardarla.
Para descomprimir y restaurar, usa:
gunzip -c /home/admin/backups/miweb.sql.gz | mysql -u admin -p usuario_miweb
Guarda este comando, te servirá para restaurar.
Quinto paso: Automatizar copias con cron backup base datos
Hacer backups manuales está bien, pero lo ideal es que se hagan solos. Para eso usamos cron, el programador de tareas de Linux.
Crear un script de backup
Primero, crea un script que haga todo el trabajo. Usa tu editor favorito (nano, vim). Te recomiendo nano por su sencillez:
nano /home/admin/backups/backup_bd.sh
Pega este contenido:
#!/bin/bash
# Script de backup para bases de datos MySQL en DirectAdmin
FECHA=$(date +%Y-%m-%d_%H-%M-%S)
DIR_BACKUP="/home/admin/backups"
BASE_DATOS="usuario_miweb"
USUARIO_MYSQL="admin"
CONTRASENA_MYSQL="tu_contraseña"
mkdir -p $DIR_BACKUP
mysqldump -u $USUARIO_MYSQL -p$CONTRASENA_MYSQL $BASE_DATOS | gzip > $DIR_BACKUP/${BASE_DATOS}_${FECHA}.sql.gz
# Borrar copias de más de 7 días
find $DIR_BACKUP -name "*.sql.gz" -mtime +7 -delete
echo "Backup completado: $DIR_BACKUP/${BASE_DATOS}_${FECHA}.sql.gz"
Sustituye tu_contraseña por la real. Guarda el archivo (Ctrl+X, luego Y, luego Enter).
Hazlo ejecutable:
chmod +x /home/admin/backups/backup_bd.sh
Pruébalo manualmente:
/home/admin/backups/backup_bd.sh
Deberías ver el mensaje de éxito y un archivo nuevo en la carpeta.
[WARNING] No pongas la contraseña en el script si no confías en el entorno. En servidores compartidos, otros usuarios podrían leerla. Mejor usa el método interactivo (
-psin contraseña) o un archivo.my.cnfcon permisos restringidos.
Programar el cron
Para que se ejecute diariamente a las 3 AM, escribe:
crontab -e
Si es la primera vez, elige un editor (nano). Añade la línea:
0 3 * * * /home/admin/backups/backup_bd.sh >> /home/admin/backups/backup_log.txt 2>&1
Guarda y cierra. Esto ejecutará el script cada día a las 3:00 AM y guardará un log de errores.
Para verificar que está activo:
crontab -l
Verás tu tarea listada.
[INFO] Puedes cambiar la frecuencia. Por ejemplo, cada 6 horas:
0 */6 * * *. O cada domingo:0 3 * * 0.
Sexto paso: Restaurar una base de datos desde tu backup
Saber restaurar es tan importante como hacer el backup. Imagina que tu web falla y necesitas recuperar los datos.
Restaurar desde un archivo .sql sin comprimir
mysql -u admin -p usuario_miweb < /home/admin/backups/miweb.sql
Restaurar desde un archivo .sql.gz comprimido
gunzip -c /home/admin/backups/miweb.sql.gz | mysql -u admin -p usuario_miweb
Te pedirá la contraseña de MySQL. Espera a que termine. Luego verifica que los datos están:
mysql -u admin -p -e "USE usuario_miweb; SHOW TABLES;"
Si ves tus tablas, ¡perfecto!
[WARNING] Restaurar sobrescribe los datos actuales. Asegúrate de que es lo que quieres. Siempre haz un backup fresco antes de restaurar.
Séptimo paso: Buenas prácticas y consejos de experto
Mantén varias copias
No te quedes solo con la última. Guarda al menos 3 días de historial. En el script ya borramos las de más de 7 días.
Almacenamiento externo
No guardes los backups en el mismo disco que tu web. Si el disco falla, pierdes todo. Súbelos a un servicio externo como Google Drive, Dropbox o un bucket S3. Puedes usar rclone o s3cmd para automatizarlo.
Prueba tus backups regularmente
Un backup que no se puede restaurar no sirve de nada. Una vez al mes, restaura una copia en un entorno de pruebas y verifica que los datos están completos.
Protege tus archivos
Los archivos SQL contienen información sensible. Establece permisos restrictivos:
chmod 600 /home/admin/backups/*.sql.gz
Así solo tú puedes leerlos.
Nombres de archivo claros
Usa siempre la fecha y la hora en el nombre. miweb_2025-03-15_03-00.sql.gz es mucho mejor que backup1.sql.
Preguntas frecuentes (FAQ)
¿Puedo hacer un backup de todas mis bases de datos a la vez?
Sí. Con este comando:
mysqldump -u admin -p --all-databases > /home/admin/backups/todas_bd.sql
Ojo, esto incluye bases del sistema. Úsalo con cuidado.
¿Qué diferencia hay entre mysqldump y copiar los archivos de MySQL?
mysqldump es más seguro porque genera SQL portable y no necesita detener el servicio. Copiar archivos directo puede corromper los datos si la BD está en uso.
¿Puedo programar el backup desde el panel de DirectAdmin?
Sí, DirectAdmin tiene una opción de "Cron Jobs" en el panel. Pero la terminal te da más control y evitas los límites de tiempo del panel.
¿Qué hago si no recuerdo la contraseña de MySQL?
Entra a DirectAdmin > "MySQL Management" y restablécela. O usa el comando:
cd /usr/local/directadmin
./directadmin set mysql_passwd nueva_contraseña
Pero eso requiere permisos de root.
¿Los backups encriptados son posibles?
Sí, puedes usar openssl para cifrar el archivo antes de guardarlo:
mysqldump -u admin -p usuario_miweb | gzip | openssl enc -aes-256-cbc -salt -out backup.sql.gz.enc
Te pedirá una contraseña de cifrado. Para descifrar, usa openssl enc -d.
¿Y si mi proveedor usa Syspanel en lugar de DirectAdmin?
Si tu hosting usa Syspanel (antes conocido como HestiaCP), el acceso al panel es a través del puerto 2106 (por ejemplo, https://tu-dominio.com:2106). Los comandos de terminal son prácticamente los mismos, pero la estructura de usuarios puede variar. Consulta la documentación de Syspanel para los nombres de usuario exactos.
Conclusión: Tu tranquilidad en un comando
Ahora ya sabes cómo hacer una copia de seguridad de una base de datos en DirectAdmin desde la terminal. Has aprendido a:
- Conectarte por SSH.
- Localizar tus bases de datos.
- Usar
mysqldumppara exportar. - Comprimir con
gzip. - Automatizar con cron backup base datos.
- Restaurar tus datos cuando los necesites.
Recuerda que la consistencia es clave. Programa tus copias seguridad directadmin y pruébalas regularmente. No esperes a que ocurra una catástrofe para descubrir que tu último backup estaba corrupto.
Con estos conocimientos, tu web está mucho más protegida. Si tienes dudas, repasa los pasos o consulta la documentación oficial de MySQL y DirectAdmin.
¡Y no olvides compartir este conocimiento con otros administradores! La prevención es la mejor herramienta.
