--- marp: true theme: kant # theme: https://cunhapaulo.github.io/style/kant.css author: Paolo Asperti title: "rclone: cosa è e cosa può fare per noi" style: | div.columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; } paginate: true footer: "Linux Day 2025 SE - 10/05/2025 - Mantova" --- # rclone ## cosa è e cosa può fare per noi ### Paolo Asperti   #### Linux Day 2025 Spring Edition #### Creative LAB, Lunetta (MN) — 10 maggio 2025 ###### [![height:2cm BgLUG](images/logo_bglug.svg)](https://bglug.it) --- ## Agenda
- che roba è - differenze rispetto a rsync - storage systems supportati - note su installazione - configurazione
- utilizzo di base (+DEMO) - funzionalità avanzate (+DEMO) - server / webgui (+DEMO) - casi d'uso
--- ## che roba è Rclone è un tool che ha lo scopo di sincronizzare una directory locale con un repository remoto. Pensiamolo come un rsync che al posto di avere solo ssh può utilizzare svariati servizi cloud. --- ## differenze rispetto a rsync - rsync parla solo con rsync (locale o tramite ssh) - può fare sync anche tra 2 repository remoti - multithreaded - rclone: file level / rsync: block level --- ## storage systems supportati - S3 compatibili - FTP / webdav - nextcloud / owncloud - SFTP - SMB / CIFS - mille altri vendor-specific --- ## installazione Sebbene sia incluso in praticamente tutti i sistemi operativi, alcuni utilizzano versioni piuttosto datate. (ad esempio debian 12 e ubuntu 22.04 usano rclone 1.60.1, datata 2022) --- ## configurazione `rclone` permette di avere molti repository configurati in un unico file di configurazione. Normalmente è possibile copiare questo file di configurazione su un'altra macchina per avere accesso ai medesimi repository. In alcuni casi le password sono **offuscate**, per scoraggiare i curiosoni; questo non è chiaramente un metodo per salvare i segreti in maniera sicura. > **Demo**: configurazione di un remoto --- ## mount E' possibile montare un remoto su una cartella locale. Il processo di `rclone` deve rimanere attivo. > **Demo**: montaggio di un remoto --- ## ncdu - per rispondere alla domanda: "ma cosa sta consumando tutto questo spazio?" - per controllare rapidamente se la configurazione di un remoto è corretta > **Demo**: ncdu --- ## sync Siete qui per questo > **Demo**: sync --- ## compressione Prima si crea la configurazione di uno storage remoto e poi si applica sopra a questa un layer di compressione. In pratica è un nuovo remoto che si appoggia ad un remoto esistente. Al momento, il solo metodo di compressione supportato è `gzip`. --- ## crittografia (client-side encryption) Come per la compressione, prima si crea la configurazione di uno storage remoto e poi si applica sopra a questa un layer di crittografia. note: - è possibile scegliere se crittografare i nomi di files e directory o meno - i nomi dei files crittografati hanno un limite di lunghezza - il timestamp di modifica dei files non è crittografato (ed è usato per la sincronizzazione) - la dimensione dei files non è crittografata - usando la crittografia, non vengono salvati gli hash dei files --- ## combine (unione di più remoti) Serve a creare un remoto in cui altri remoti sono visibili attraverso sottocartelle. > **Demo**: combine di più remoti --- ## union A differenza di `combine`, qui i remoti sono sovrapposti; il risultato è che l'elenco dei files è la "somma" dei remoti combinati. A volte è poco intuitivo capire dove vanno a finire i files scritti. > **Demo**: union di più remoti --- ### rcd e web gui Il server rcd è comodo anche solo per configurare... Fondamentalmente si usa per spostare in remoto le varie operazioni. Ascolta su un socket o su una porta (default: `http://localhost:5572/`). > **Demo**: rcd --- ## server (webdav/sftp/...) Serve il contenuto di un remoto via http sulla porta 8080 (default) > **Demo**: serve http --- ## server (volumi docker) Utilizza un remoto come storage per il provisioning di volumi docker > **Demo**: serve docker --- ## esempi di utilizzo - montaggio cartella remota compressa e crittografata - mysqldump pippato su rclone - backup in docker compose > **Demo**: casi d'uso --- ## Riferimenti Queste slides saranno presto disponibili sul sito BgLUG: [https://bglug.it/](https://bglug.it/)