Michele Liberi software

versione 1.04, giugno 2026

Michele Liberi
mail: mliberi@gmail.com
cell: +393485211456
telegram: @MicheleLiberi

liberix

nbru, gestione centralizzata dei backup

nbru è l'acronimo di Network Backup & Restore Utility, una applicazione web che permette di gestire in modo centralizzato i backup di un insieme di macchine (raggiungibili via TCP/IP), anche con sistemi operativi diversi.

I dati salvati non devono rimanere necessariamente sul disco della macchina che contiene il database, essi possono essere spostati su nastro, su libreria o altrove, in fase di salvataggio, per poi essere recuperati in fase di ripristino.

In ogni caso i dati salvati vengono indicizzati nel DB per consentire ricerche veloci.

nbru salva i file usando il concetto di livello.

nbru si basa sul concetto di label, un identificatore univoco, che ha i seguenti attributi:

purge
Se questo flag è true il salvataggio ad un certo livello cancella automaticamente tutti i precedenti salvataggi con livello maggiore. Serve, ad esempio, se quando faccio il salvataggio settimanale voglio cancellare i salvataggi giornalieri fatti durante la settimana.

Se false nbru mantiene tutte le unità di salvataggio, che possono comunque essere cancellate manualmente, in modo da consentire il ripristino a qualunque data.

Se true nbru cancella automaticamente le versioni precedenti dei file appena salvati, in modo da consentire il ripristino solo dell'ultima versione.

host
Il nome della macchina (o indirizzo IP) sulla quale risiedono i file da salvare.
home
la directory base per eventuali pathname relativi.
finder
Il comando di shell che genera su standard output la lista dei file da salvare.
schedule
Specifica, se presente, la frequenza con la quale i dati verranno salvati automaticamente (daily, weekly, monthly, yearly).

I salvataggi controllati dall'attributo schedule attribuiscono i livelli in base alla seguente tabella di corrispondenza:

schedule livello
daily 5
weekly 4
monthly 3
yearly 1

nbru può essere utilizzato anche direttamente da linea di comando per:

Il programma ha una doppia natura: può essere lanciato da linea di comando o può essere utilizzato come applicazione web. Alla partenza rileva automaticamente l'environment e si comporta di conseguenza.

In modalità linea di comando nbru offre le seguenti funzionalità:

list [label_RE]...
Produce una lista di tutte la label definite nel DB, che sono le unità elementari dei salvataggi.
schedule [label_RE]...
Lancia i backup in base al parametro schedule definito per ognuna delle label definite nel DB.
backup level label_RE...
Lancia il salvataggio di una o più label. Il salvataggio viene lanciato incondizionatamente.
purge label_RE...
Si perdono alcuni backup intermedi, ma è comunque garantita la presenza di ogni file salvato all'ultima versione disponibile.
rebuild TS label_RE...
Questa funzione ripristina il contenuto della label specificata facendo il restore progressivo di tutte le unità di backup fino alla data specificata.
restore rowid [filename_RE]...
Quasta funzione ripristina da una specifica unità di backup (identificata dall'id univoco rowid. La presenza di una o più RE (regular expression) limita il ripristino ai soli file specificati.

Definiamo, ad esempio, una label.

label: test
host: localhost
home: /dati
finder: find .
schedule: daily
purge: true

Salviamo i dati (da linea di comando o interfaccia grafica)

nbru backup 0 test
Verrà creato un nuovo oggetto nella classe /vault del DB nbru

Lanciamo ogni giorno (a crontab o gcron) il comando

nbru schedule

Il primo giorno viene fatto un salvataggio a livello 5, incrementale rispetto al primo fatto a livello 0.

Dal secondo al sesto giorno viene fatto un salvataggio a livello 5, incrementale rispetto al livello 5 del giorno precedente.

Il settimo giorno viene fatto un salvataggio a livello 4, incrementale rispetto al livello 0. Tutti i backup a livello 5 vengono ignorati in fase di salvataggio, e poi cancellati.

Il primo giorno del mese successivo viene fatto un salvataggio a livello 3, incrementale rispetto al livello 0. Tutti i backup a livello 5 e 4 vengono ignorati in fase di salvataggio, e poi cancellati.

Il primo giorno del mese successivo viene fatto un salvataggio a livello 3, incrementale rispetto al livello 3 precedente. Tutti i backup a livello 5 e 4 vengono ignorati in fase di salvataggio, e poi cancellati.

Il primo giorno dell'anno successivo viene fatto un salvataggio a livello 1, incrementale rispetto al livello 0. Tutti i backup a livello 5, 4, 3, 2 vengono ignorati in fase di salvataggio, e poi cancellati.

Il ripristino di file può avvenire sia selezionando manualmente uno o più blocchi e specificando una RE (regular expression), sia ricostruendo un'intera directory ad una certa data.

Per ulteriori informazioni sulla sintassi di attivazione e sulle opzioni disponibili lanciare il comando con l'opzione -h.

(c) M. Liberi, last updated: 2026-06-15