Sincronizar OneDrive en Ubuntu 22.04 excluyendo carpetas grandes con skipdir y synclist

Ahorrar decenas de gigabytes y, al mismo tiempo, mantener todos tus documentos al día en varios sistemas operativos es perfectamente posible: basta con dominar el filtrado del cliente OneDrive para Linux. A continuación aprenderás, paso a paso, cómo instalar, configurar y automatizar la sincronización de Ubuntu 22.04 con OneDrive mientras excluyes de forma permanente la carpeta Documents/Videos (o cualquier otra que te resulte pesada).

Índice

Por qué excluir carpetas grandes en Linux

En entornos de doble arranque o híbridos (Windows + Ubuntu) es habitual que ciertos directorios—películas, máquinas virtuales, copias de seguridad—resulten innecesarios o incluso contraproducentes en el disco del equipo Linux. Excluirlos:

  • Reduce el tiempo de la primera sincronización.
  • Evita saturar el SSD de tu portátil con archivos multimedia gigantes.
  • Minimiza el consumo de ancho de banda y energía en portátiles.
  • Facilita las copias de seguridad locales al tratar con menos datos.

Requisitos previos

  • Ubuntu 22.04 LTS (otras versiones de Ubuntu o distribuciones basadas en Debian funcionan del mismo modo).
  • Acceso a un usuario con privilegios sudo.
  • Cuenta personal, escolar o empresarial de OneDrive.

Instalar el cliente OneDrive (proyecto abraunegg)

Microsoft no publica un cliente nativo para Linux; el más fiable y con mayor comunidad es el que mantiene abraunegg. Instálalo desde el PPA oficial con:

sudo add-apt-repository ppa:yann1ck/onedrive
sudo apt update
sudo apt install onedrive
Authoriza tu cuenta:
onedrive

Tras la autorización inicial se creará ~/.config/onedrive/ junto con un archivo básico config.

Skipdir, skip_file y synclist: cómo funciona el filtrado

El cliente aplica las reglas antes de descargar nada. Entre las tres posibilidades:

  • skipdir — ignora todos los subdirectorios cuyo nombre (o ruta relativa) coincida.
  • skip_file — filtra archivos concretos según comodines (.iso, .mp4…).
  • synclist — lista blanca: sólo baja lo que aparezca en este archivo, el resto se omite.

Tabla comparativa de métodos recomendados

ObjetivoMétodo recomendadoPasos esenciales
Excluir permanentemente una carpetaFiltrado nativo (skipdir)Instalar el cliente. Añadir en ~/.config/onedrive/config: skipdir = "Documents/Videos" Resincronizar: onedrive --synchronize --resync
Sincronizar sólo ciertas carpetasArchivo synclistCrear ~/synclist con las rutas deseadas. Declarar en config: synclist = "~/synclist" Resincronizar para que todo lo no listado se elimine del disco.
Exclusión puntual--single-directoryEjecutar: onedrive --synchronize --single-directory "Carpeta" Útil para sesiones esporádicas; requiere repetir.
Sincronización continuaServicio systemd incluidoHabilitar: systemctl --user enable onedrive Iniciar: systemctl --user start onedrive El servicio vigila OneDrive cada 300 s y aplica las reglas.
Cambiar reglas de filtradoActualizar y --resyncModifica config o synclist, elimina archivos locales que ya no cumplas y ejecuta --resync.

Configuración completa paso a paso

  1. Crear la carpeta de trabajo
    El cliente usa ~/OneDrive por defecto; si prefieres otra ruta añade en config: sync_dir = "/media/datos/OneDrive"
  2. Definir skipdir
    Cada entrada se evalúa con path relativo al raíz de OneDrive. Para excluir varios niveles: skipdir = "Documents/Videos|Backups/VMWare|*.old" El carácter | actúa como OR.
  3. Probar la regla
    Lanza un --dry-run para simular: onedrive --synchronize --dry-run Verás qué se descargaría y qué se ignora.
  4. Forzar la resincro inicial
    onedrive --synchronize --resync Durante la primera ejecución con reglas nuevas puede tardar, porque reconstruye el índice.

Automatización con systemd

El paquete ya instala el archivo de unidad onedrive.service. Personalízalo sin tocar el original creando un override:

systemctl --user edit onedrive
[Service]
ExecStart=
ExecStart=/usr/bin/onedrive --monitor --monitor-interval 600 --verbose

Al reiniciar sesión, el servicio arrancará y vigilará cambios cada diez minutos. Comprueba su estado con:

systemctl --user status onedrive

Ejemplo práctico: excluir Documents/Videos

  1. Edita ~/.config/onedrive/config y deja: skipdir = "Documents/Videos"
  2. Guarda y ejecuta: onedrive --synchronize --resync
  3. Verifica que el directorio Videos no existe en ~/OneDrive/Documents pero sí permanece online.

Control del uso de disco

Para confirmar ahorro de espacio:

du -sh ~/OneDrive

Si en el futuro necesitas liberar aún más, borra las carpetas locales ignoradas (rm -rf) y ejecuta de nuevo onedrive --resync. El cliente no las volverá a traer porque tu regla sigue vigente.

Ajustes avanzados

  • Ancho de banda: --download-rate, --upload-rate (KB/s).
  • Registro detallado: --verbose o --logdir /var/log/onedrive.
  • Proxy corporativo: variable de entorno HTTPS_PROXY.
  • Notificaciones de escritorio: integra con notify-send usando un wrapper o un servicio D-Bus.
  • Respaldo de configuración: incluye config, items.sqlite3 y tu synclist en la copia de seguridad del sistema.

Cambiar reglas sin riesgos

Si decides revocar la exclusión y bajar la carpeta Videos:

  1. Quita la entrada correspondiente de skipdir.
  2. Resincroniza (--resync).
  3. Comprueba que los 31 GB empiezan a llegar (puedes pausar con Ctrl‑C y reanudar más tarde, el índice evita descargas duplicadas).

El proceso inverso—añadir una exclusión nueva—también es inmediato: tras --resync los archivos en cuestión pasan a estado “omitido” y puedes eliminarlos localmente sin que vuelvan.

Conflictos y resolución

Cuando Windows y Ubuntu editan el mismo fichero casi simultáneamente, OneDrive crea duplicados (filename-PC-NOMBRE). Para minimizar estos conflictos:

  • Mantén activo el servicio --monitor para subir los cambios de Ubuntu cuanto antes.
  • Asegúrate de que el reloj del sistema esté sincronizado con NTP.
  • Revisa los logs de OneDrive o el histórico de versiones online.

Solución de problemas habituales

SíntomaCausa probableSolución
Unable to delete item” al resincronizarArchivo abierto por otro programaCierra la aplicación y reintenta; en remoto se marcará como eliminado.
Autenticación caducada tras mesesRenovación de token OAuthEjecuta onedrive --synchronize; se abrirá el navegador para autorizar.
No se actualizan reglas nuevasOlvidaste --resyncHaz onedrive --synchronize --resync o reinicia el servicio.
Archivos con tildes se saltanProblema de codificación en synclistGuarda el archivo en UTF‑8 sin BOM.

Buenas prácticas de seguridad

  • Usa una ruta de sincronización ubicada en un volumen cifrado (LUKS o eCryptFS) si manejas datos sensibles.
  • No ejecutes OneDrive como root; emplea siempre el usuario normal para evitar sobre-escritura de permisos.
  • Actualiza el paquete regularmente con sudo apt upgrade; el proyecto añade soporte a nuevas API de Microsoft con frecuencia.

Conclusiones

Con unas pocas líneas de configuración, el cliente OneDrive para Linux te permite olvidarte de carpetas superfluas y centrarte en lo que realmente necesitas en Ubuntu. La regla básica es simple: define skipdir (o synclist), ejecuta un --resync y deja que systemd haga el resto. Así obtendrás un entorno de trabajo ligero, ordenado y perfectamente sincronizado con tu nube de Microsoft 365.

Índice