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 config
y sigue las instrucciones para configurar OneDrive.rclone config
Durante la configuración, deberás:- Crear una nueva configuración (
n
para new remote). - Darle un nombre (por ejemplo,
onedrive
). - Seleccionar
OneDrive
como el tipo de almacenamiento. - Seguir las instrucciones para autenticar
rclone
con 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
mail
pueda 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
rclone
puede no persistir después de un reinicio. Puedes agregar el comando de montaje a tu archivorc.local
o utilizarsystemd
para 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.