4.5 KiB
Executable File
marp, theme, author, title, style, paginate, footer
marp | theme | author | title | style | paginate | footer |
---|---|---|---|---|---|---|
true | kant | Paolo Asperti | rclone: cosa è e cosa può fare per noi | div.columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; } | true | 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
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: