Ubuntu 22.04: sincronizzare OneDrive escludendo una cartella (monitor continuo, filtri lato client)

Vuoi sincronizzare OneDrive su Ubuntu 22.04 senza scaricare la cartella Documents/Videos (~31 GB)? In questa guida configuriamo il client “onedrive” (abraunegg) per una sincronizzazione continua e automatica, filtrando quella directory in modo sicuro e permanente.

Indice

Panoramica e obiettivo

Per impostazione predefinita, il client OneDrive per Linux replica tutto ciò che trova nel cloud sul disco locale quando lanci onedrive --synchronize. Se stai lavorando su un SSD o su una partizione con spazio limitato, scaricare cartelle molto voluminose è spesso controproducente. L’obiettivo qui è semplice: sincronizzare tutto tranne Documents/Videos, mantenendo però la sincronizzazione continua (monitoraggio in tempo reale delle modifiche) e senza dover lanciare comandi manuali ogni volta.

Come funziona il filtraggio lato client

Il client open‑source onedrive (implementazione “abraunegg”) offre tre meccanismi di filtraggio lato client che risolvono alla radice il problema:

  • skip_dir — salta una o più cartelle (e tutte le relative sottocartelle) durante la sincronizzazione.
  • skip_file — esclude file specifici usando pattern (es. backup, temporanei).
  • sync_listinclusione esplicita: sincronizza solo ciò che elenchi in un file.

Per il nostro scenario (sincronizzare tutto tranne una directory) la via più lineare e robusta è skip_dir, perché la regola resta valida sia nelle sincronizzazioni manuali, sia in modalità monitor a lungo termine.

Soluzioni a confronto

ApproccioCome funzionaProContro
Sync selettivo manuale (--single-directory)Lanciare onedrive --synchronize --single-directory "<nome_cartella>" per ogni directory che si desidera includere.Semplice da capire; evita di toccare la cartella pesante.Va ripetuto per ogni cartella ammessa e dopo ogni nuova cartella nel cloud; non offre monitoraggio continuo; rischio di “dimenticare” qualcosa.
Client Side Filtering (consigliato)Configurare skipdir, skipfile o un sync list nel file di configurazione del client.Nativamente supportato; compatibile con --monitor; si configura una volta e non ci si pensa più.Serve conoscere la sintassi e modificare il file ~/.config/onedrive/config o creare il file sync_list.

Prerequisiti e installazione del client

Su Ubuntu 22.04 il pacchetto del client è normalmente disponibile nei repository. Se non lo hai già, installalo e verifica la versione:

sudo apt update
sudo apt install onedrive
onedrive --version

Se in passato hai provato altri tool o versioni non ufficiali, è buona norma verificare che non restino servizi o script concorrenti attivi. Disinstalla eventuali alternative o fermale prima di proseguire, per evitare doppie sincronizzazioni.

Prima esecuzione e autorizzazione dell’account

Al primo avvio il client deve ottenere il consenso per accedere al tuo OneDrive. Lancia:

onedrive

Comparirà un URL da aprire nel browser: effettua l’accesso al tuo account Microsoft e consenti l’accesso. Una volta completata la procedura, il client salverà i token necessari nella tua configurazione locale. Questa fase va fatta una sola volta per profilo utente.

Configurare il filtro per escludere Documents/Videos

Il file di configurazione si trova (per utente) in ~/.config/onedrive/config. Se non esiste, puoi crearlo. Inserisci la seguente configurazione minima:

# ~/.config/onedrive/config
Esclude la cartella pesante e tutte le sottocartelle:
skip_dir = "Documents/Videos"

Opzionale: altre regole utili

Esempio: non sincronizzare file di backup o temporanei

skip\_file = "..bak\$|~\$|^.~lock.."

Note importanti sulla sintassi:

  • I percorsi in skip_dir sono relativi alla radice del tuo OneDrive (come la vedi da web o da Windows), non al percorso locale.
  • La regola vale in modo ricorsivo: l’intera cartella e le sue sottocartelle verranno ignorate.
  • Per più cartelle usa il carattere pipe | come separatore/pattern. Esempio: skip_dir = "Documents/Videos|Archivio/ISO|Progetti/Legacy"
  • Se nel nome compaiono spazi o caratteri speciali, mantienili così come sono, racchiudendo l’intera espressione tra virgolette.

Prima sincronizzazione “controllata”

Prima di scrivere gigabyte sul disco, è saggio fare una prova a secco per verificare che le regole vengano applicate correttamente:

onedrive --synchronize --dry-run --verbose

Nel log dovresti vedere che la cartella Documents/Videos viene elencata tra gli elementi saltati. Se tutto torna, lancia la sincronizzazione reale:

onedrive --synchronize

Il client creerà nel percorso locale (per impostazione predefinita ~/OneDrive) la struttura dei file e delle cartelle, escludendo Documents/Videos.

Sincronizzazione continua: servizio systemd o monitor

Per tenere allineato OneDrive senza interventi manuali ci sono due strade equivalenti:

Avvio come servizio utente (consigliato per uso quotidiano)

# Abilita e avvia il servizio per l'utente corrente
systemctl --user enable --now onedrive

Verifica lo stato

systemctl --user status onedrive </code></pre>

<p>Questo approccio rende la sincronizzazione resiliente ai riavvii e assicura che il demone sia sempre attivo in background, applicando i tuoi filtri.</p>

<h3>Avvio manuale in modalità monitor</h3>
<pre><code class="language-bash">onedrive --monitor
</code></pre>
<p>Il comando rimane in foreground: utile per sessioni temporanee o per fare debug. Anche qui, <code>skip_dir</code> verrà rispettato.</p>

<h2>Verifica, log e diagnostica</h2>
<ul>
  <li><strong>Controlla la configurazione effettiva</strong>:
    <pre><code class="language-bash">onedrive --display-config

Log del servizio (se avviato con systemd):

journalctl --user -u onedrive -f

Simulazione dettagliata:

onedrive --synchronize --dry-run --verbose

Esamina quali file sarebbero scaricati o ignorati, prima di procedere.

Alternative: quando usare sync_list o --single-directory

Sebbene skip_dir sia perfetto per “tutto tranne X”, ci sono scenari in cui potresti preferire altri metodi.

sync list (inclusione esplicita)

Se vuoi limitare la sincronizzazione a un sottoinsieme preciso di directory e file, crea il file ~/.config/onedrive/sync_list e inserisci una riga per ogni percorso da includere (sempre relativo alla radice OneDrive):

Documenti
Foto
Progetti/2024

Con il sync list, verrà sincronizzato solo ciò che elenchi. È ideale per ambienti con spazio locale estremamente limitato o in cui vuoi un perimetro di lavoro “curato”. Di contro, se aggiungi nuove cartelle nel cloud, dovrai ricordarti di aggiornarlo.

Sincronizzazione selettiva manuale (--single-directory)

Per un’azione spot su una sola directory (es. scaricare momentaneamente una cartella per un progetto), puoi eseguire:

onedrive --synchronize --single-directory "Progetti/2024"

È pratico ma non sostituisce il monitoraggio continuo: dovresti ripeterlo per ogni cartella “buona” e dopo ogni modifica lato cloud. In più, non evita che nel tempo ti sfuggano nuove directory che volevi includere.

Consigli pratici ed errori comuni

  • Cartella già scaricata? Se in passato avevi sincronizzato Documents/Videos e ora vuoi escluderla, prima imposta skip_dir, poi rimuovi la copia locale e infine lancia: onedrive --resync Questo forza il ricalcolo dello stato, evitando che file locali ormai esclusi restino “orfani”.
  • Percorsi con spazi/caratteri speciali: scrivili esattamente come appaiono su OneDrive (es. "Cartella con spazi/Video 4K"), racchiudendo l’espressione tra virgolette nel file di configurazione.
  • Più esclusioni: usa il separatore | in skip_dir per creare una singola regola che salta più cartelle: skip_dir = "Documents/Videos|Backup|Archivio/ISO"
  • Case sensitivity: su Linux i nomi file sono case‑sensitive. Mantieni nei filtri la stessa capitalizzazione che vedi su OneDrive/Web/Windows (es. Documentsdocuments).
  • Controllo dello spazio: dopo la prima sincronizzazione verifica la crescita di ~/OneDrive. Puoi stimare rapidamente: du -h -d 1 ~/OneDrive | sort -h
  • Sincronizzazione in mobilità: se lavori su rete a consumo, considera l’avvio in monitor con --verbose per vedere cosa viene sincronizzato e valutare eventuali altre esclusioni (thumbnail, cache, build).

Esempi pronti all’uso

Configurazione minima per il nostro caso

# ~/.config/onedrive/config
skip_dir = "Documents/Videos"
# Prima sincronizzazione
onedrive --synchronize

Avvio del servizio continuo

systemctl --user enable --now onedrive

In alternativa:

onedrive --monitor

Escludere più cartelle di grandi dimensioni

# Escludi video, ISO e librerie di build:
skip_dir = "Documents/Videos|Archivio/ISO|Sviluppo/build"

Escludere tipi di file pesanti ovunque si trovino

# Salta file .iso e .psd in qualunque cartella
skip_file = ".*\.(iso|psd)$"

Capire cosa succede “dietro le quinte”

Il client mantiene uno stato locale per tenere traccia di cosa è stato già sincronizzato. Quando imposti skipdir o skipfile, la pipeline di sincronizzazione valuta ogni elemento del cloud e:

  1. Filtra gli elementi che corrispondono alle tue regole (non verranno scaricati né monitorati).
  2. Scarica e monitora tutto il resto in base al tuo profilo (personale o business).
  3. Replica le modifiche in entrambe le direzioni (upload/download), salvo ciò che è escluso.

Questo significa che, anche se da Windows aggiungi un nuovo file in Documents/Videos, il client Linux non lo scaricherà e continuerà a operare sul resto dell’albero senza intoppi.

Domande frequenti

Posso escludere solo sottocartelle interne a Documents/Videos?

Sì. Imposta, ad esempio:

skip_dir = "Documents/Videos/4K|Documents/Videos/RAW"

Così sincronizzi il resto di Videos, ma salti 4K e RAW.

Il filtro vale anche se rinomino la cartella?

Se rinomini Documents/Videos in Documents/Clips, la vecchia regola non si applicherà più (perché cambia il percorso relativo). Aggiorna skip_dir con il nuovo nome per mantenere l’esclusione.

Come scelgo tra skip_dir e sync list?

skip_dir è perfetto per dire “tutto tranne X”. Il sync list è da preferire quando vuoi un ambiente di lavoro whitelist (solo Y e Z), ad esempio su un disco molto piccolo o per isolare progetti critici.

La cartella esclusa resta visibile localmente?

No. Non viene creata e non occupa spazio su disco. Se era già stata scaricata in passato, rimuovi la copia locale dopo aver impostato l’esclusione e considera un --resync per riallineare lo stato.

Posso cambiare la cartella locale di sincronizzazione?

Sì. Nel file di configurazione puoi impostare (se necessario) un percorso locale diverso tramite l’opzione dedicata (sync_dir). Ricorda di fermare il servizio, spostare/organizzare i dati e poi riavviare.

Checklist rapida

  • Installa il client: sudo apt install onedrive
  • Autorizza l’account: onedrive (prima esecuzione)
  • Configura i filtri: ~/.config/onedrive/config con skip_dir = "Documents/Videos"
  • Prova a secco: onedrive --synchronize --dry-run --verbose
  • Esegui la prima sync: onedrive --synchronize
  • Attiva la sync continua: systemctl --user enable --now onedrive (oppure --monitor)
  • Controlla i log: journalctl --user -u onedrive -f

Perché questa soluzione è solida nel tempo

L’approccio di Client Side Filtering delega al client il compito di rispettare limiti e preferenze, invece di basarsi su “strategie manuali” fragili. Una volta impostato skip_dir, puoi dimenticartene: anche se sul cloud aggiungi nuovi file, il demone continuerà a escludere Documents/Videos in tutte le sincronizzazioni future. La modalità servizio con systemd assicura che la sincronizzazione parta automaticamente a ogni accesso e sia resiliente ai riavvii.

Riepilogo operativo

In sintesi, per sincronizzare OneDrive su Ubuntu 22.04 escludendo Documents/Videos:

  1. Installa e autorizza il client onedrive.
  2. Aggiungi al file ~/.config/onedrive/config la riga skip_dir = "Documents/Videos".
  3. Esegui una prima sincronizzazione (meglio se prima in --dry-run).
  4. Attiva la sincronizzazione continua con systemd (systemctl --user enable --now onedrive) o con --monitor.

Da questo momento in poi il tuo spazio resterà sotto controllo: tutti i contenuti necessari saranno sempre aggiornati, ma la cartella pesante non verrà mai scaricata.


Appendice: esempi avanzati

Combinare esclusioni di cartella e di file

Puoi usare contemporaneamente skipdir e skipfile. Esempio per saltare la cartella dei video e, ovunque si trovino, i file temporanei e i pacchetti compressi:

skip_dir  = "Documents/Videos"
skip_file = "~$|(^|/)\.tmp$|.*\.(zip|rar|7z)$"

Gestire progetti con molte dipendenze

Se in Progetti hai directory di build e dipendenze che non vuoi sincronizzare (ad esempio node_modules, venv, build), puoi adottare un filtro globale:

skipdir = "Documents/Videos|.*/nodemodules$|./venv$|./build$"

In questo modo riduci drasticamente il numero di file sincronizzati e velocizzi le scansioni periodiche.

Passare temporaneamente in “manuale”

Se devi scaricare una cartella esclusa solo per un’attività specifica, puoi commentare la riga skip_dir nel file di configurazione, eseguire la sincronizzazione, lavorare offline e poi ripristinare l’esclusione. Ricorda però di valutare l’impatto sullo spazio e di riportare la configurazione allo stato precedente per non tenere file inutili sul disco.

Spostare la radice di sincronizzazione

Se vuoi conservare i dati OneDrive su un HDD esterno o su una partizione diversa, ferma il servizio, sposta la cartella locale e imposta l’opzione di percorso locale nel file di configurazione (voce dedicata). Poi avvia --resync per riallineare lo stato.

Conclusione

Configurando il Client Side Filtering con skip_dir ed eseguendo il servizio in modalità monitor, ottieni una sincronizzazione affidabile, continua e leggera: Ubuntu resta allineato a OneDrive in tempo reale, ma senza scaricare la cartella Documents/Videos (o qualunque altra directory definita nei filtri). È una soluzione “imposta e dimentica” che protegge spazio, banda e produttività.

Se in futuro cambiano le tue esigenze (nuove cartelle voluminose, progetti temporanei, collaborazione su file multimediali), ti basterà aggiungere o rimuovere voci dai filtri oppure, quando serve, passare a un sync list per avere un perimetro ancora più ristretto. L’importante è tenere la configurazione sotto controllo con le simulazioni (--dry-run) e monitorare i log durante i primi giorni di utilizzo.


Configurazione minima di riferimento

# ~/.config/onedrive/config
skip_dir = "Documents/Videos"
facoltativo: altre regole
skip_file  = ".*\.bak$|~$"
# Prima sincronizzazione
onedrive --synchronize

Sincronizzazione continua (servizio utente)

systemctl --user enable --now onedrive

oppure

onedrive --monitor 

Con questi passaggi, Ubuntu 22.04 resterà allineato al tuo OneDrive senza scaricare la cartella esclusa, con un impatto minimo su spazio e prestazioni.

Indice