Copia de seguridad y recuperación
La copia de seguridad de datos es uno de los aspectos más importantes de la administración del sistema. Este artículo presenta varias soluciones de respaldo y recuperación en Ubuntu 26.04 para ayudarlo a elegir la herramienta adecuada para sus necesidades.
rsync - Herramienta de sincronización flexible
rsync es una herramienta de sincronización de archivos rápida y flexible que admite transferencias incrementales y es una de las herramientas de copia de seguridad más utilizadas en Linux.
Uso básico
# Local directory sync
rsync -av /source/directory/ /backup/directory/
# Note: the trailing slash on the source path matters
# /source/dir/ -> syncs the contents of the directory
# /source/dir -> syncs the directory itself (including the directory name)Opciones comunes
# -a archive mode (preserves permissions, timestamps, symlinks, etc.)
# -v verbose output
# -z compress during transfer
# -h human-readable output
# --progress show progress
# --delete delete files in the target that don't exist in the source
# Complete local backup command
rsync -avh --progress /home/user/ /backup/home-user/
# Backup with exclusion rules
rsync -avh --progress \
--exclude='.cache' \
--exclude='node_modules' \
--exclude='.local/share/Trash' \
/home/user/ /backup/home-user/
# Using an exclude file
rsync -avh --exclude-from='/home/user/rsync-excludes.txt' \
/home/user/ /backup/home-user/Copia de seguridad remota
# Backup to a remote server via SSH
rsync -avz -e ssh /home/user/ user@remote:/backup/home-user/
# Specify SSH port
rsync -avz -e "ssh -p 2222" /home/user/ user@remote:/backup/home-user/
# Restore from a remote server
rsync -avz user@remote:/backup/home-user/ /home/user/
# Use --delete to keep both sides in sync
rsync -avz --delete /home/user/ user@remote:/backup/home-user/Script de copia de seguridad rsync automatizado
Cree un script de respaldo:
sudo nano /usr/local/bin/daily-backup.sh#!/bin/bash
# Configuration
SOURCE="/home/"
DEST="/backup/daily"
LOG="/var/log/backup.log"
DATE=$(date +%Y-%m-%d_%H%M%S)
# Create log entry
echo "===== Backup started: $DATE =====" >> "$LOG"
# Execute backup
rsync -avh --delete \
--exclude='.cache' \
--exclude='node_modules' \
--exclude='.local/share/Trash' \
"$SOURCE" "$DEST" >> "$LOG" 2>&1
# Record result
if [ $? -eq 0 ]; then
echo "Backup completed successfully: $(date)" >> "$LOG"
else
echo "Backup failed: $(date)" >> "$LOG"
fisudo chmod +x /usr/local/bin/daily-backup.shProgramelo con cron:
# Run backup every day at 2 AM
sudo crontab -e
# Add: 0 2 * * * /usr/local/bin/daily-backup.shTimeshift: instantáneas del sistema
Timeshift se centra en las instantáneas y la recuperación de archivos del sistema, similar a Restaurar sistema de Windows.
Instalación y configuración
# Install Timeshift
sudo apt install timeshift
# Launch the graphical interface
sudo timeshift-gtk
# Create a snapshot via command line
sudo timeshift --create --comments "Before installing NVIDIA driver"
# List all snapshots
sudo timeshift --list
# Restore to a specific snapshot
sudo timeshift --restore --snapshot '2026-03-24_10-00-00'
# Delete a snapshot
sudo timeshift --delete --snapshot '2026-03-24_10-00-00'Configuración de línea de comandos
# View current configuration
sudo timeshift --config
# Set snapshot type (RSYNC or BTRFS)
sudo timeshift --snapshot-device /dev/sda2Archivo de configuración de Timeshift
Editar /etc/timeshift/timeshift.json:
{
"backup_device_uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"parent_device_uuid": "",
"do_first_run": false,
"btrfs_mode": false,
"include_btrfs_home": false,
"schedule_monthly": false,
"schedule_weekly": true,
"schedule_daily": true,
"schedule_hourly": false,
"schedule_boot": false,
"count_monthly": 2,
"count_weekly": 3,
"count_daily": 5,
"count_hourly": 0,
"count_boot": 0,
"exclude": [
"/home/**",
"/root/**"
]
}Modo de instantánea Btrfs
Si el sistema utiliza el sistema de archivos Btrfs, Timeshift puede aprovechar las instantáneas nativas de Btrfs, que son más rápidas y utilizan menos espacio:
# Verify filesystem type
df -T /
# If it's Btrfs, select BTRFS mode in Timeshift
sudo timeshift --btrfsDeja Dup - Herramienta de copia de seguridad de escritorio
Deja Dup (GNOME Backups) es una herramienta de copia de seguridad fácil de usar para el entorno de escritorio Ubuntu, adecuada para usuarios personales.
Instalación y uso
# Install (usually pre-installed on Ubuntu Desktop)
sudo apt install deja-dupDeja Dup proporciona una interfaz gráfica a la que se puede acceder a través de “Configuración” o buscando “Copias de seguridad” en el menú de la aplicación.
Características clave:
- Admite copias de seguridad en discos locales, unidades externas y almacenamiento en red
- Admite copias de seguridad en Google Drive y otro almacenamiento en la nube
- Cifrado automático de copias de seguridad
- Soporte de respaldo incremental
- Copias de seguridad automáticas programadas
Operaciones de línea de comando
Deja Dup utiliza la duplicidad como backend:
# Manually run a backup
deja-dup --backup
# Restore files
deja-dup --restoreCopia de seguridad de imagen de disco
Creando imágenes de disco con dd
# Create a full disk image
sudo dd if=/dev/sda of=/backup/sda.img bs=4M status=progress
# Compressed image
sudo dd if=/dev/sda bs=4M status=progress | gzip > /backup/sda.img.gz
# Restore from an image
sudo dd if=/backup/sda.img of=/dev/sda bs=4M status=progress
# Restore from a compressed image
gunzip -c /backup/sda.img.gz | sudo dd of=/dev/sda bs=4M status=progressUsando Clonezilla
Clonezilla es una potente herramienta de creación de imágenes y clonación de discos:
# Install Clonezilla
sudo apt install clonezilla
# It is generally recommended to boot from a Clonezilla Live USB
# Download: https://clonezilla.org/downloads.phpCopia de seguridad del sistema con tar
# Back up the entire system (excluding unnecessary directories)
sudo tar czpf /backup/system-$(date +%Y%m%d).tar.gz \
--exclude=/backup \
--exclude=/proc \
--exclude=/sys \
--exclude=/dev \
--exclude=/run \
--exclude=/tmp \
--exclude=/mnt \
--exclude=/media \
--exclude=/lost+found \
/
# Restore the system
sudo tar xzpf /backup/system-20260324.tar.gz -C /Copia de seguridad de la base de datos
MySQL/MariaDB
# Back up a single database
mysqldump -u root -p database_name > /backup/db-$(date +%Y%m%d).sql
# Back up all databases
mysqldump -u root -p --all-databases > /backup/all-db-$(date +%Y%m%d).sql
# Restore a database
mysql -u root -p database_name < /backup/db-20260324.sqlPostgreSQL
# Back up a single database
sudo -u postgres pg_dump dbname > /backup/pg-$(date +%Y%m%d).sql
# Back up all databases
sudo -u postgres pg_dumpall > /backup/pg-all-$(date +%Y%m%d).sql
# Restore
sudo -u postgres psql dbname < /backup/pg-20260324.sqlRecomendaciones de estrategias de respaldo
La regla de respaldo 3-2-1
- 3 copias de tus datos (el original + 2 copias de seguridad)
- 2 medios de almacenamiento diferentes (p. ej., disco duro local + almacenamiento en la nube)
- 1 copia de seguridad externa (protección contra desastres físicos)
Recomendaciones por escenario
| Escenario | Herramientas recomendadas | Frecuencia de respaldo |
|---|---|---|
| Usuario personal de escritorio | Deja Dup + Timeshift | Diario / Semanal |
| Estación de trabajo de desarrollo | rsync + cambio de tiempo | Diariamente |
| servidor web | rsync + copia de seguridad de base de datos | Diario/hora |
| Servidor empresarial crítico | rsync + instantáneas LVM + copia de seguridad externa | En tiempo real/por hora |
Verificación de copias de seguridad
Verificar periódicamente la integridad de la copia de seguridad es esencial:
# Verify a tar backup
tar tzf /backup/system-20260324.tar.gz > /dev/null
# Verify an rsync backup
rsync -avhn --delete /source/ /backup/ # dry-run to compare differences
# Perform periodic restore drills