[FLUG] Ripristino di Sistema Linux

  • From: Simon <f.simon@xxxxxxxx>
  • To: fanolug@xxxxxxxxxxxxx
  • Date: Mon, 4 Mar 2002 00:04:24 +0100

Mailing List del Fortunae LUG
=============================

Che ne dite di un bel "Ripristino di Sistema" anche
per linux?

Bè è abbastanza semplice non ci vuole molto.
Per prima cosa reinstallate tutto, chi ben comincia è
a metà dell'opera.

Ricordate di installare il pacchetto 'cvs', altrimenti
non si potrà far nulla.

Cvs ci permetterà di tenere dei backup incrementali, e
noi ne terremo uno di /etc... in modo da taner traccia
di tutte le configurazioni del nostro sistema, potendo
in futuro tornare indietro a qualunque momento della
'storia di un file'.
Un pò come nei platform, che salvi quando vuoi e quando
muori puoi tornare ad uno dei salvataggi precedenti:)

Ad installazione avvenuta non fate nulla. La prima cosa
da fare è decidere dove tenere il repository del backup,
probabilmente se usate una distro per cerebrolesi è
già stato scelto... io che uso slack invece me lo sono
dovuto fare. Ho scelto: /home/root/cvs
Perchè da me la /home è una partizione a parte che non
formatto quando reinstallo il sistema.
Ok, settiamo una bella env:

root@jkcal:/etc# export CVSROOT=~/cvs

Consiglio di metterlo nel file ~/.bash_profile così viene
settata automaticamente ad ogni login.
Inizializziamo il repository:

root@jkcal:/etc# cvs init

Bene, siamo pronti per andare a fare il primo snapshot
delle configurazioni di sistema (che sono pulite pulite
visto che abbiamo appena installato):

root@jkcal:~# cd /etc
root@jkcal:/etc# cvs import etc slack8 start

(PS. ricordatevi di quel 'start', ne parlerò in seguito)
Ci si ritrova in 'vi' a dover editare un file che è il
changelog, per adesso usciamo con: :q

Al messaggio:

Log message unchanged or not specified
a)bort, c)ontinue, e)dit, !)reuse this message  [...]
Action: (continue) 

...premiamo il tasto invio.

Se compare la frase:

No conflicts created by this import

...vuol dire che tutto è andato a buon fine... abbiamo
il primo snapshot!

Per poter poi tener traccia dei cambiamenti bisogna fare
anche il primo checkout:

root@jkcal:/etc# cd /
root@jkcal:/# cvs checkout etc

Ora iniziamo ad editare i file e a configurare quello che
vogliamo.
Bene è giunto il momento di dire a cvs di tener traccia
dei nostri cambiamenti ai files, ora vi spiego come fare.
Se abbiamo aggiunto files o directory che prima non
c'erano bisogna dire al cvs di tener traccia anche di
loro con il comando 'cvs add':

root@jkcal:~/etc# cvs add newdir
Directory /home/root/cvs/etc/newdir added to the repository
root@jkcal:~/etc# cvs add newdir/newfile 
cvs add: scheduling file `newdir/newfile' for addition
cvs add: use 'cvs commit' to add this file permanently

Controlliamo quali file sono stati modificati:

root@jkcal:/etc# cvs status|less

Capiamo che un file è stato modificato dalla scritta:

File: inetd.conf        Status: Locally Modified

Invece se un file non è stato modificato sarà:

File: inetd.conf        Status: Up-to-date

Bene, ordiniamo al cvs di tener traccia dei cambiamenti
dei files:

root@jkcal:~/etc# cvs commit

Ci troviamo di nuovo all'interno del 'vi' per editare il
changelog, usciamo nuovamente con: :q
Di nuovo:

Log message unchanged or not specified
a)bort, c)ontinue, e)dit, !)reuse this message [...]
Action: (continue) 

...premiamo invio.

Bene, abbiamo fatto il primo aggiornamento del repository!
Continuiamo ad editare i file e ogni tanto facciamo degli
altri 'cvs commit' per tener traccia dei cambiamenti.

Tutto a posto? Pensiamo che per ora le configurazioni sono
buone? Ok allora siamo pronti per rilasciare il primo 'tag'.
Infatti fino ad ora se volessimo tornare ad un precedente
snapshot dovremmo specificare file e versione da estrarre
dal repository... scomodo!

Un tag è una 'collezione' di tutte le versioni dei file,
in modo che se in futuro vogliamo tornare indietro basta
specificare il tag ed estrarremo in un sol colpo TUTTI i
file aggiornati alla versione in cui erano quando abbiamo
dichiarato quel tag.

Salviamo le attuali versioni dei files col tag 'snapshot1':

root@jkcal:~/etc# cvs tag snapshot1

Se in futuro vorremo tornare a questo punto basterà
invocare:

root@jkcal:~/etc# cd /
root@jkcal:/# cvs checkout -r snapshot1 etc

E se volessimo tornare all'inizio come subito dopo la
nostra installazione? Bè è semplice, avevamo dichiarato
come primo tag 'start' quindi:

root@jkcal:~/etc# cd /
root@jkcal:/# cvs checkout -r start etc

Inutile dire l'utilità che ha tutto questo quando si
commettono degli errori nelle configurazioni... ma anche
quando reinstallate... basta un checkout e zac... tutto
di nuovo configurato alla perfezione!:)

Avvertenze e bug:
Le uniche che mi vengono in mente riguardano i files
'passwd', 'shadow' e 'group', infatti fare un checkout
di vecchie versioni di quei files potrebbe portare alla
perdita di nuovi utenti o alla riattivazione di vecchi
e cancellati.
Comunque i workaround sono molteplici, ce ne sono di
più o meno puliti ma nulla di difficile.

Visto che voi siete palati fini, e avete snobbato il
mio "Boot sicuro con più Kernel" (o qualcosa di simile),
ho cercato di elevarmi e alzare un pò il tiro.
Chi non ha capito s'attacca... Paganini non ripete;):PPPP

-- 
/* Federico 's1m0n' Simoncelli <f.simon@xxxxxxxx>
   http://www.jkcal.org/simon
*/ 
int main(){unsigned int g,h=0;while(++h){for(g=(h>1)?2:1;g<
h/2+1&&h%g!=0;g++);if(g==h/2+1)printf("%i\n",h);}return 0;}


--
"Software is like sex: it's better when it's free." L.Torvalds


Other related posts:

  • » [FLUG] Ripristino di Sistema Linux