Para realizar una copia de seguridad con rsync desde un sistema Linux a OneDrive, primero necesitas montar OneDrive como un sistema de archivos en tu sistema Linux. Una herramienta popular para esto es rclone, que permite interactuar con diferentes servicios de almacenamiento en la nube, incluyendo OneDrive.
Aquí tienes los pasos para configurar rclone y usar rsync para hacer copias de seguridad en OneDrive:
Instalación y Configuración de rclone
- Instala
rclone:curl https://rclone.org/install.sh | sudo bash - Configura
rclone:
Ejecutarclone configy sigue las instrucciones para configurar OneDrive.rclone configDurante la configuración, deberás:- Crear una nueva configuración (
npara new remote). - Darle un nombre (por ejemplo,
onedrive). - Seleccionar
OneDrivecomo el tipo de almacenamiento. - Seguir las instrucciones para autenticar
rclonecon tu cuenta de OneDrive.
- Crear una nueva configuración (
- Verifica la configuración:
Asegúrate de que la configuración funciona listando los archivos en tu OneDrive:bash rclone ls onedrive:
Montaje de OneDrive
Para montar OneDrive como un sistema de archivos, puedes usar rclone mount. Esto requiere tener permisos adecuados y posiblemente instalar fuse si no está ya instalado.
- Instala
fuse(si es necesario):sudo apt-get install fuse - Crea un directorio para montar OneDrive:
mkdir -p ~/OneDrive - Monta OneDrive:
rclone mount onedrive: ~/OneDrive &Esto montará tu OneDrive en el directorio~/OneDrive.
Uso de rsync para la Copia de Seguridad
Una vez montado OneDrive, puedes usar rsync para copiar archivos al directorio montado.
#!/bin/bash
# Configuración
SOURCE_DIR="/ruta/al/directorio/origen" # Directorio de origen
DEST_DIR="$HOME/OneDrive/copia_de_seguridad" # Directorio de destino en OneDrive
LOG_FILE="$HOME/OneDrive/copia_de_seguridad/backup.log" # Archivo de log
DATE=$(date +"%Y-%m-%d %H:%M:%S") # Fecha y hora actuales
# Crear directorio de destino si no existe
mkdir -p "$DEST_DIR"
# Realizar la copia de seguridad incremental con rsync
rsync -av --delete "$SOURCE_DIR" "$DEST_DIR" > "$LOG_FILE" 2>&1
# Escribir en el log el resultado de la copia de seguridad
if [ $? -eq 0 ]; then
echo "[$DATE] Copia de seguridad completada con éxito." >> "$LOG_FILE"
else
echo "[$DATE] Error en la copia de seguridad." >> "$LOG_FILE"
fi
# Opcional: Enviar notificación por correo electrónico
EMAIL="[email protected]"
mail -s "Copia de Seguridad Completada" "$EMAIL" < "$LOG_FILE"
Cómo usar este script
- Guarda el script en un archivo, por ejemplo
backup_to_onedrive.sh. - Haz que el archivo sea ejecutable:
bash chmod +x backup_to_onedrive.sh - Configura las rutas de origen y destino, así como la dirección de correo electrónico para recibir notificaciones.
- Ejecuta el script:
bash ./backup_to_onedrive.sh
Automatización con cron
Para automatizar este script y ejecutarlo, por ejemplo, todos los días a las 2 AM, puedes agregarlo a cron:
- Edita el crontab:
crontab -e - Agrega la siguiente línea al final del archivo (ajustando la ruta al script):
0 2 * * * bash /ruta/al/backup_to_onedrive.sh
Notas
- Asegúrate de que el sistema tenga configurado un servidor de correo para que el comando
mailpueda enviar correos electrónicos. En sistemas basados en Debian/Ubuntu, puedes instalarmailutils:sudo apt-get install mailutils - Revisa los permisos de los directorios de origen y destino para asegurarte de que el script tenga los permisos necesarios para leer y escribir.
- El montaje de
rclonepuede no persistir después de un reinicio. Puedes agregar el comando de montaje a tu archivorc.localo utilizarsystemdpara montar automáticamente al inicio.
Este enfoque te permite usar rsync para copias de seguridad incrementales hacia OneDrive, proporcionando una solución robusta y flexible para proteger tus datos.
