In quanti si sono sentiti ripetere, dopo l'ennesimo blackout, ( vi aspettavate "cambia filesystem e metti ext3 al posto di reiserfs" ... lo so che ve l'hanno detto - ed hanno ragione - ma la frase e' un altra.. )
" FAI IL BACKUP DEI TUOI DATI " ?
In molti lo so.. il mio prof di Sistemi Operativi lo diceva sempre.. persino quando gli chiedevo se potevo portargli il PC per fargli vedere il mio nuovo driver della ventolina del PC.
Beh, il senso del post, oltre a mettervi paura, e' quello di insegnarvi un nuovo comando per backuppare i vostri dati. Si, direte voi, a cosa mi serve? Ho scaricato l'ultima versione di Copio&&Salvo 3.0.3 ( e l'ho crackata.. anche se e' GPL mi piace crackare i programmi coi serialZ trovati sui siti di wareZ ) che funziona benissimo.. Oppure state usando cp da tempo immemore, ( non nomino dd perche' solo chi non ha cervello usa dd per backuppare i dati ) cosa che va piu' che bene ma che si puo' fare in un modo molto piu' veloce.
Innanzitutto, il comando e' questo:
(cd /src/dir && tar cf - . ) | ( cd /dst/dir && tar xf -)Quelli di voi che conoscono gia' la bash e il comando tar puo' gia' dire " Accidenti, e' vero! ", copiare / incollare la riga sopra nel loro scriptino in cron e chiudere il browser.
Per tutti gli altri, direi di studiarsi la nozione di pipeline: Una volta assorbita, possiamo capire che il nostro comando entra nella directory da copiare, e se cio' ha successo ( le && sono l'and logico in bash, eseguo solo se il comando prima e' ritornato con VERO ) eseguo tar con i parametri c ( create ) e f ( file ). Il - sta ad indicare lo stdout e il . la directory corrente. Cioe' creo un archivio della directory corrente sullo stdout, lo passo attraverso pipeline al comando che mi entra nella dir di destinazione e, se cio' ha successo, avvia tar, con opzione x ( extract ) ed f ( file ). Il - in questo caso indica stdin; quindi estrae l'archivio passatogli da stdin ( e la pipeline fa proprio questo, unisce stdout del primo comando allo stdin del secondo ).
Abbiamo backuppato i nostri dati nella nostra directory di destinazione; il tutto in modo molto piu' veloce rispetto all'aver usato solo cp ( fate una prova con time ... ). Come esercizio per casa, provate a capire il perche' di questa velocita' in piu' .
1 commento:
Effettivamente, come specificato da kkk, usare cp e' un metodo molto artigianale, che mal si addice se vogliamo avere una cronologia di backup ( ieri, l'altro ieri, due settimane fa.. ) perche' non e' incrementale. Cosa significa incrementale? Beh, detto in due parole, viene memorizzata solo la "differenza" tra un backup e l'altro. Cosi' mi basta memorizzare davvero solo un backup ( ad esempio il primo ) e salvare i successivi come "differenze" dal primo ( gia' .. si puo' risparmiare molto spazio con questo metodo ).
Sei curioso?
http://samba.anu.edu.au/rsync/examples.html
Tie' !
Posta un commento