Howto - backup
Questa procedura consente di effettuare backup e restore via rete
Sul client eseguiamo il comando
hal9000:~# tar -cp --exclude proc / | nc -q 0 192.168.1.1 1717
vogliamo creare (keyword -c) un archivio TAR di *tutti* i file a partire
da / ed escludendo il file system virtuale sotto /proc, facendo
attenzione a preservarne gli attributi (keyword -p).
L'archivio non viene salvato su un file, ma il flusso di dati viene
diretto sullo standard output e passato tramite pipe a netcat, che si
occupa di redirigere lo stream di dati sulla porta 1717 dell'host
192.168.1.1. Con la keyword '-q 0', chiediamo a netcat di concludere il
proprio lavoro, non appena riceve l'EOF da tar.
Sul server, invece, eseguiamo
bishop:/mnt/hd# nc -l -p 1717 | bzip2 -9 -c > laptop_hal9000.tar.bz2
Con questa riga di comando, mettiamo netcat in ascolto (switch -l) sulla
porta 1717. Il flusso di dati inviati dal client, viene cosė passato in
pipe a bzip2 che si occupa della compressione a livello 9, lasciandoci il
nostro bell'archivio laptop_woody.tar.bz2.
Il grosso del lavoro, la compressione, viene svolta sfruttando le risorse
CPU , velocizzando un procedimento che avrebbe
chiesto tempi sicuramente maggiori se eseguito sul client!
Quando poi sarà necessario operare un restore dell'archivio, una volta
settate e formattate le partizioni, grazie ad un floppy di rescue,
basterà operare il procedimento inverso, eseguendo da una parte:
bishop:/mnt/hd# bunzip -c laptop_hal9000.tar.bz2 | nc -q 0 192.168.1.2 1717
e dall'altra
hal9000:~# cd / ; nc -l -p 1717 | tar xvf -
Per evitare brutte sorprese al reboot, ricordiamoci di reinstallare il
boot loader di linux prima di riavviare il sistema.
Se poi vogliamo operare in condizioni di sicurezza, possiamo abbandonare
netcat -che non opera alcun tipo di crittazione sui dati- in favore di un
tunnel Secure SHell.
hal9000:~# tar -cp --exclude proc /directory/ \
| ssh bishop@192.168.1.1 '(cd destinazione && bzip2 -9 -c -
>laptop_hal9000.tar.bz2)'
Ripristinando con
bishop:~# bunzip laptop_hal9000.tar.bz2 \
| ssh hal9000@192.168.1.2 '(cd destinazione && tar xvf - )'