217 lines
4.5 KiB
Markdown
Executable File
217 lines
4.5 KiB
Markdown
Executable File
---
|
|
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"
|
|
---
|
|
|
|
<!-- _class: titlepage -->
|
|
<!-- footer: -->
|
|
|
|
# rclone
|
|
|
|
## cosa è e cosa può fare per noi
|
|
|
|
### Paolo Asperti
|
|
|
|
<span style="margin-top: 1ex;"> </span>
|
|
|
|
#### Linux Day 2025 Spring Edition
|
|
#### Creative LAB, Lunetta (MN) — 10 maggio 2025
|
|
|
|
###### [](https://bglug.it)
|
|
|
|
---
|
|
|
|
## Agenda
|
|
|
|
<div class="columns" align="center">
|
|
<div>
|
|
|
|
- che roba è
|
|
- differenze rispetto a rsync
|
|
- storage systems supportati
|
|
- note su installazione
|
|
- configurazione
|
|
|
|
</div>
|
|
<div>
|
|
|
|
- utilizzo di base (+DEMO)
|
|
- funzionalità avanzate (+DEMO)
|
|
- server / webgui (+DEMO)
|
|
- casi d'uso
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
---
|
|
|
|
## 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/)
|