copias de seguridad
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Te explico varias formas de hacer copias de seguridad en Ubuntu Server:
1. Copias de seguridad con rsync (Recomendado)
Backup básico de directorios:
# Sincronizar directorios locales
rsync -avh /ruta/origen/ /ruta/backup/
# Con compresión
rsync -avzh /ruta/origen/ /ruta/backup/Backup remoto via SSH:
rsync -avzh -e ssh /ruta/local/ usuario@servidor:/ruta/backup/Excluir archivos/directorios:
rsync -avzh --exclude='*.tmp' --exclude='cache/' /origen/ /backup/2. Copias de seguridad con tar (Para archivos comprimidos)
Backup completo del sistema (excluyendo algunos directorios):
sudo tar -czpf /backup/backup-completo-$(date +%Y%m%d).tar.gz \
--exclude=/backup \
--exclude=/proc \
--exclude=/sys \
--exclude=/dev \
--exclude=/tmp \
--exclude=/run \
--exclude=/mnt \
--exclude=/media \
--exclude=/lost+found /Backup de directorios específicos:
tar -czpf /backup/home-backup-$(date +%Y%m%d).tar.gz /home/3. Backup de bases de datos
MySQL/MariaDB:
# Backup completo
mysqldump -u usuario -p --all-databases > /backup/mysql-full-$(date +%Y%m%d).sql
# Backup de base de datos específica
mysqldump -u usuario -p nombre_bd > /backup/db-backup-$(date +%Y%m%d).sqlPostgreSQL:
# Backup completo
sudo -u postgres pg_dumpall > /backup/pgsql-full-$(date +%Y%m%d).sql
# Backup de base de datos específica
sudo -u postgres pg_dump nombre_bd > /backup/pg-db-$(date +%Y%m%d).sql4. Script automatizado de backup
Crea un script /usr/local/bin/backup.sh:
#!/bin/bash
# Configuración
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d)
RETENTION_DAYS=7
# Crear directorio de backup
mkdir -p $BACKUP_DIR/$DATE
# Backup de configuraciones importantes
tar -czpf $BACKUP_DIR/$DATE/etc-backup.tar.gz /etc/
# Backup de home directories
tar -czpf $BACKUP_DIR/$DATE/home-backup.tar.gz /home/
# Backup de bases de datos (MySQL ejemplo)
mysqldump -u root -pTuPassword --all-databases > $BACKUP_DIR/$DATE/mysql-backup.sql
# Backup con rsync de datos importantes
rsync -av /var/www/ $BACKUP_DIR/$DATE/www-backup/
# Eliminar backups antiguos
find $BACKUP_DIR -type d -mtime +$RETENTION_DAYS -exec rm -rf {} \;
echo "Backup completado: $BACKUP_DIR/$DATE"Hacer ejecutable:
sudo chmod +x /usr/local/bin/backup.sh5. Automatizar con Cron
Editar crontab:
sudo crontab -eAgregar para backup diario a las 2 AM:
0 2 * * * /usr/local/bin/backup.sh6. Herramientas especializadas
Timeshift (para snapshots del sistema):
sudo apt update
sudo apt install timeshiftDeja Dup (interfaz gráfica):
sudo apt install deja-dup7. Backup en la nube
Con Rclone:
# Instalar
sudo apt install rclone
# Configurar (ejemplo con Google Drive)
rclone config
# Sincronizar
rclone sync /backup/ remote:backup-folder/Consejos importantes:
Prueba las restauraciones periódicamente
Usa el principio 3-2-1: 3 copias, 2 medios diferentes, 1 fuera del sitio
Encripta backups sensibles
Monitorea los procesos de backup
Documenta el procedimiento de restauración
¿Necesitas ayuda con algún tipo específico de backup o tienes algún caso particular en mente?
Perfecto! Para tu caso específico con PHPMyAdmin y Laravel, te voy a explicar una forma sencilla de hacer copias de seguridad siendo principiante.
📁 Estructura de tu proyecto
/var/www/tu_proyecto_laravel/ # Donde está Laravel
/usr/share/phpmyadmin/ # Donde está PHPMyAdmin
Base de datos MySQL # Donde están tus datos🛠 Script de Backup Sencillo
Crea el archivo backup.sh:
#!/bin/bash
# Configuración básica
FECHA=$(date +%Y-%m-%d)
BACKUP_DIR="/home/tu_usuario/backups"
PROYECTO_LARAVEL="/var/www/tu_proyecto_laravel"
NOMBRE_BACKUP="backup-$FECHA"
# Crear directorio de backup
mkdir -p $BACKUP_DIR/$NOMBRE_BACKUP
echo "🔄 Iniciando backup..."
# 1. Backup de la base de datos
echo "📀 Haciendo backup de la base de datos..."
mysqldump -u root -pTuPassword --all-databases > $BACKUP_DIR/$NOMBRE_BACKUP/mysql-backup.sql
# 2. Backup de Laravel
echo "📁 Haciendo backup de Laravel..."
tar -czf $BACKUP_DIR/$NOMBRE_BACKUP/laravel-backup.tar.gz $PROYECTO_LARAVEL
# 3. Backup de PHPMyAdmin (configuraciones)
echo "🔧 Haciendo backup de PHPMyAdmin..."
tar -czf $BACKUP_DIR/$NOMBRE_BACKUP/phpmyadmin-backup.tar.gz /usr/share/phpmyadmin
# 4. Backup de configuraciones importantes
echo "⚙️ Haciendo backup de configuraciones..."
cp /etc/php/8.*/apache2/php.ini $BACKUP_DIR/$NOMBRE_BACKUP/
cp /etc/apache2/sites-available/* $BACKUP_DIR/$NOMBRE_BACKUP/
# Comprimir todo en un solo archivo
echo "📦 Comprimiendo todo..."
tar -czf $BACKUP_DIR/$NOMBRE_BACKUP.tar.gz -C $BACKUP_DIR $NOMBRE_BACKUP
# Limpiar archivos temporales
rm -rf $BACKUP_DIR/$NOMBRE_BACKUP
echo "✅ Backup completado: $BACKUP_DIR/$NOMBRE_BACKUP.tar.gz"🔧 Cómo usar el script:
1. Crear el archivo:
nano /home/tu_usuario/backup.sh2. Hacerlo ejecutable:
chmod +x /home/tu_usuario/backup.sh3. Ejecutar manualmente:
./backup.sh🗄 Backup Solo de lo Esencial (Más Simple)
Si quieres algo más básico:
#!/bin/bash
FECHA=$(date +%Y-%m-%d)
BACKUP_DIR="/home/tu_usuario/backups"
mkdir -p $BACKUP_DIR
# Solo lo más importante
mysqldump -u root -pTuPassword tu_base_de_datos > $BACKUP_DIR/db-$FECHA.sql
tar -czf $BACKUP_DIR/laravel-$FECHA.tar.gz /var/www/tu_proyecto_laravel
echo "✅ Backup simple completado!"📅 Automatizar el Backup
Para que se haga automáticamente todos los días:
# Editar el cron
crontab -e
# Agregar esta línea (se ejecuta a las 3 AM todos los días)
0 3 * * * /home/tu_usuario/backup.sh🔄 Cómo Restaurar
Restaurar base de datos:
mysql -u root -pTuPassword < /home/tu_usuario/backups/db-2024-01-15.sqlRestaurar Laravel:
tar -xzf /home/tu_usuario/backups/laravel-2024-01-15.tar.gz -C /📋 Verificación Importante
Antes de hacer backup, verifica:
1. Ruta exacta de tu proyecto Laravel:
ls -la /var/www/2. Nombre de tu base de datos:
mysql -u root -p -e "SHOW DATABASES;"3. Tu usuario de MySQL:
# Si no usas root, puede que tengas un usuario específico
mysql -u root -p -e "SELECT User FROM mysql.user;"🚨 Consejos para Principiantes
Guarda las contraseñas en un lugar seguro
Prueba el restore en un entorno de prueba primero
Haz backups manualmente antes de hacer cambios importantes
Mantén los últimos 3-5 backups por si acaso
¿Quieres que ajuste el script para tu configuración específica?
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Comentarios
Publicar un comentario