DEV Community

minnogit
minnogit

Posted on

Eseguire Backup grandi su Debian: Compressione, Split e Sessioni Persistenti

Gestire dataset massivi (100GB+) su un server remoto presenta due sfide principali: la gestione delle risorse (RAM/CPU) e la stabilità della connessione. Se la sessione SSH cade mentre stai creando un archivio enorme, il processo viene interrotto bruscamente, obbligandoti a ricominciare da capo.

In questa guida vedremo come usare 7-Zip per creare archivi multi-volume e come proteggere il processo con screen.


1. Il problema della disconnessione SSH

Quando avvii un comando tramite SSH, questo è legato alla tua sessione. Se la tua connessione internet vacilla o chiudi il terminale, il sistema invia un segnale di "hangup" (SIGHUP) e interrompe il lavoro. Per un backup di molto grande che può richiedere ore, questo è un rischio inaccettabile.

La soluzione: GNU Screen

screen è un multiplexer di terminale che permette di avviare un processo in una sessione virtuale che sopravvive anche se ti disconnetti.

Installazione:

sudo apt update && sudo apt install screen p7zip-full

Enter fullscreen mode Exit fullscreen mode

2. Flusso di lavoro con Screen

Prima di lanciare il comando di compressione, crea una sessione dedicata:

  1. Crea una sessione: screen -S backup_cliente
  2. Lancia il comando di compressione (vedi sezione successiva).
  3. Scollegati (Detach): Premi CTRL + A e poi il tasto D. Ora puoi chiudere il terminale e spegnere il tuo PC; il server continuerà a lavorare.
  4. Ricollegati (Resume): Quando vuoi controllare l'avanzamento, torna nel terminale e scrivi:
screen -r backup_cliente

Enter fullscreen mode Exit fullscreen mode

3. Il comando 7-Zip ottimizzato (Low RAM)

Per evitare che il server vada in crash per esaurimento memoria (OOM Error), utilizziamo parametri che limitano l'uso della RAM e della CPU:

7z a -v1g -mx=1 -md=16m -mmt=2 -p -mhe=on archive_name.7z ./source_folder/

Enter fullscreen mode Exit fullscreen mode

Analisi dei parametri:

  • a: Aggiunge i file all'archivio.
  • -v1g: Divide l'archivio in parti da 1GB (ideale per upload/download FTP stabili).
  • -mx=1: Compressione minima (ultra-rapida). Fondamentale per risparmiare tempo.
  • -md=16m: Riduce il "dizionario" di compressione a 16MB per mantenere basso l'uso della RAM.
  • -mmt=2: Limita l'uso a 2 thread della CPU.
  • -p: Richiede una password in modo sicuro (non apparirà in chiaro nei log).
  • -mhe=on: Cifra anche i nomi dei file (senza password non si vede il contenuto).

5. Verifica e Consegna al Cliente

Una volta terminato, verifica l'integrità dei volumi prima di caricarli sull'FTP:

7z t archive_name.7z.001

Enter fullscreen mode Exit fullscreen mode

Istruzioni per il cliente:
Comunica al destinatario che per estrarre i dati dovrà:

  1. Scaricare tutti i file (.001, .002, ... fino al file .7z).
  2. Usare software come 7-Zip (Windows).
  3. Aprire esclusivamente il primo file della serie; il programma ricomporrà automaticamente l'intero archivio.

Top comments (0)