IT | EN

ddiff

ddiff è un tool Linux per sincronizzare file e block device in maniera differenziale via SSH, oppure può creare dei file differenziali per aggiornare un backup offline rapidamente.

Requisiti

Avvertenza

ddiff opera a basso livello su file e dispositivi. Un percorso errato può sovrascrivere dati in modo irreversibile. L’autore non può ritenersi responsabile di eventuali danni causati dall’uso errato del comando.

Licenza

Questo software viene distribuito a titolo gratuito con licenza MIT: https://mit-license.org/

Sintassi

ddiff [OPTIONS] <input> <output>  
ddiff --hash [OPTIONS] <file> [start_block_number] [count]  
ddiff --map [OPTIONS] <input> <output_map>  
ddiff --makediff [OPTIONS] <map_file> <input> <output_diff_file> [output_map_file]  
ddiff --applydiff [OPTIONS] <diff_file> <output>
<input> può essere un file normale o un block device. <output> può essere un file o un block device locale o raggiungibile via SSH nel formato user@host:/percorso.

Opzioni

Esempi di backup diretto

ddiff source.img backup.img  
ddiff /dev/sdb user@host:/srv/backup.img  
ddiff /dev/sdb root@host:/dev/sdb

Come eseguire backup offline in due tempi

Per eseguire backup in due tempi è necessario:

1) Creare o avere un file map della situazione del backup

2) Creare un file diff confrontando il sorgente con il file map del backup

3) Applicare il file diff al backup


**Nota: si suggerisce di creare e mantenere la mappa aggiornata durante la funzione --makediff per averla già disponibile per il backup successivo.**

Creazione file map

ddiff --map disk.img disk.map
Il file map è binario e contiene la sequenza degli hash BLAKE3 di tutti i blocchi da 1 MiB del file sorgente. Il file map andrebbe creato per il backup e servirà per confrontarlo con il sorgente.

Creazione file diff

ddiff --makediff baseline.map disk.img patch.diff  
ddiff --makediff baseline.map disk.img patch.diff new.map
--makediff confronta il file corrente con il map_file di base e crea un archivio ZIP contenente solo i blocchi modificati. Se output_map_file è specificato, viene scritto anche il nuovo file map del sorgente corrente. Funzione utilissima per avere i riferimenti del backup sul PC dove risiede il sorgente.

Applicazione diff

ddiff --applydiff patch.diff restored.img
--applydiff scrive i blocchi presenti nel diff su un file locale esistente o su un block device locale. Prima di scrivere, verifica che l'hash corrente dei blocchi da sovrascrivere coincida con il campo old presente nel diff. Se uno di questi controlli fallisce, il comando termina con codice di uscita 3. Se l'output è un file normale, al termine viene troncato alla lunghezza finale registrata nel diff. Se è un block device, non viene eseguito alcun troncamento.

Funzione di servizio

Questa funzione, pur essendo documentata, viene usata principalmente in modo automatico nei processi di copia.
ddiff --hash disk.img  
ddiff --hash disk.img 120  
ddiff --hash disk.img 120 32
--hash restituisce gli hash BLAKE3 di uno o più blocchi: Ogni hash viene emesso su stdout in formato esadecimale, uno per riga. Progress bar, warning e messaggi di servizio vanno su stderr.

Formato dei file

Map

Il file map è un file binario composto da record consecutivi di 32 byte, uno per ogni hash BLAKE3.

Diff

Il file diff è un archivio ZIP che contiene: index.json contiene:

Codici di uscita

Utilizziamo i cookie esclusivamente per garantire una miglior fruizione delle funzionalità del sito www.techelp.it. Non sono utilizzati cookies traccianti, di profilazione o di terze parti.

Accetto Rifiuto

Informativa completa
TecHelp di Stefano Zanola - Via A.Volta 7 - 25040 Corte Franca (BS)
P.IVA 02837430988 - Email: - PEC: - Privacy Policy