Linux Tutorial: il backup con Remastersys e Rsync

January 12th, 2009 by aLeX, posted in: g33k

http://packratstudios.com/wp-content/uploads/2008/03/backup_recovery.jpgGrazie all’aiuto di Linuxquestions.org, del buon Luca (lo svizzero) e dell’ottimo Google, sono finalmente riuscito a pensare una solida strategia di backup per il mio laptop Linux su cui gira Ubuntu 8.10 (intrepid ibex).

Beh la strategia e’ semplice: usare il programma remastersys per fare un’immagine bootabile del sistema (hopefully stabile), e poi o 1) far girare rsync in automatico per backupparmi la home oppure 2) usare un programma tipo Back In Time.

Dato che ancora non mi fido appieno di Back In Time (devo testarlo bene), che e’ simile al Time Machine di Apple, allora ho deciso di andare di rsync. Ad ogni modo, partiamo da Remastersys.

1. REMASTERSYS.
Il programma si puó ottenere qua: http://www.remastersys.klikit-linux.com/

ad ogni modo le istruzioni per istallarlo sono:

  • Aprire il file /etc/apt/sources.list, con questo comando da terminale:
    http://catrip.files.wordpress.com/2008/02/remastersys100.png?w=100&h=100sudo gedit /etc/apt/sources.list
  • aggiungere ció che segue:
    deb http://www.remastersys.klikit-linux.com/repository remastersys/
    e salvare il file.
  • dopodiché sempre in terminale, scriviamo “sudo apt-get update” per aggiornare la lista dei file disponibili, e poi “install remastersys” per installare il software.

Il bello di Remastersys é che é capace di creare un DVD bootabile che contiene in toto il nostro sistema, software e files personali compresi. Di conseguenza, creare un DVD di questo tipo una volta che abbiamo una macchina stabile e con tutti i programmi o gli script che ci servono é cosa buona, giusta e soprattutto utile, dato che a fronte di un crash di sistema potremo reinstallare con facilitá tutta la nostra roba. Per esempio nel mio caso, ogni volta che installo ubuntu il wifi non va, perché va scaricato un driver e ne va tolto un altro. Comodo avere questo DVD fatto con remastersys in futuro, perché mi permetterá di avere un sistema subito funzionante.

L’idea migliore é fare un DVD non appena il nostro sistema é stabile, e poi, se serve, possiamo fare altri DVD in futuro se ci sembra che possa giovarci. Ottimo, no?

2. RSYNC.

http://www.haykranen.nl/wp-content/uploads/2008/05/timemachine.jpgE ora, passiamo ad rsync. Una cosa importante da tenere a mente é che la cosa migliore da fare é avere a disposizione un disco esterno formattato in ext3 (il formato di sistema di Linux, equivalente di FAT32 su Windows). Io ho fatto un errore del genere coi miei primi tentativi di backup usando BackInTime. Pensavo di avere il backup invece avevo backuppato poco e niente essendo il mio filesystem un FAT32, il cui problema é che non é pensato per salvare i permessi dei file. Se poi ci servirá accedere al nostro backup da un sistema WIndows, potremo usare questa utility: http://www.diskinternals.com/linux-reader/

L’idea sarebbe quella di fare un backup automatico usando il cron, il tool che ci permette di schedulare varie operazioni. La perfezione si raggiungerebbe se facessimo uno script che prima di far partire il backup riesca a controllare se effettivamente il disco di backup é collegato.

Dunque, procediamo:

Vogliamo fare backup automatico di

/home/MYUSERNAME (che contiene tutti i files personali)
/etc (che contiene un po di files e configurazioni, non si sa mai che possa tornare utile)

Per fare una sincronizzazione di home e etc in una data destinazione, possiamo usare i comandi:

sudo rsync -av /home/USERNAME /media/DISCOBACKUP/rsync >> home/USERNAME/Documents/loghome.txt

sudo rsync -av /etc /media/DISCOBACKUP/rsync/etcbackup >> home/USERNAME/Documents/logetc.txt

Spiegazione:
sudo
mi da i privilegi di root
rsync richiama il programma

-av: sono opzioni per rsync, e nello specifico il loro significato é:

>> serve a scrivere nel file specificato un log del backup

a: sta per archive e significa che vogliamo copiare le cartelle specificate e anche il loro contenuto (recursive)
v: sta per verbose, significa che su schermo nel terminale vedremo un output scritto (una specie di log) di ció che sta succedendo

/home/USERNAME é la mia home

/etc beh… é la directory etc

/media/DISCOBACKUP/rsync é la mia destinazione.

3. CRON

http://bonixnet.files.wordpress.com/2006/12/cron.gifGrazie a cron possiamo schedulare (si dice in italiano? mah) i nostri backup. A me non serve piú di tanto in questo caso perché ho un portatile e non c’e’ sempre collegato il disco esterno. Preferisco far partire io il mio script una volta al giorno circa.

Ad ogni modo, per editare il file che gestisce le operazioni automatiche per il nostro utente digitiamo in terminale:

crontab -e

le opzioni di crontab vengono settate cosi:

*     *   *   * *  command to be executed
-     -    -    – -
|     |     | |     |
|     |     | |     +—– Giorno della settimana (0 – 6) (Sunday=0)
|     |     | +——- mese (1 – 12)
|     |     +——— giorno del mese (1 – 31)
|     +———– ora (0 – 23)
+————- min (0 – 59)

per esempio possiamo avere:

30 18 * * * /home/USERNAME/script

Significa che il nostro script partirá ogni giorno alle 18:30!

4. Lo script

Ok, siamo arrivati alla fine di questo trip (soprattutto per me).

Per creare gli script si puó usare un editor di testo tipo mcedit (che gira dentro terminale) oppure possiamo usare il normalissimo Text Editor di Ubuntu (gedit). Quindi, apriamo l’editor e scriviamo qualcosa tipo ció che segue (parte dello script é stata gentilmente fornita da un membro del forum di LinuxQuestions.org). Il bello di questo script é che esegue prima un controllo per vedere se c’e’ il nostro HD esterno collegato.

*************************************************

# Vediamo se il disco di backup é connesso, se no usciamo dallo script

if mount | grep DISCOBACKUP > /dev/null
then

#apriamo rsync e facciamo partire i nostri backup

sudo rsync -av /home/USERNAME /media/DISCOBACKUP/rsync >> home/USERNAME/Documents/loghome.txt

sudo rsync -av /etc /media/DISCOBACKUP/rsync/etcbackup >> home/USERNAME/Documents/logetc.txt


else

#se il disco non é connesso, mostra il messaggio ed esci

echo “Il disco di backup non é collegato”
echo “Verifica i collegamenti e riprova”
echo “Script chiuso”
exit 1
fi

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Quindi salviamo il nostro script, io l’ho chiamato backupscript.sh e l’ho messo sul desktop.

Poi, per fare in modo che non mi venga chiesta la password utente ogni volta che apro lo script, apro il terminale, navigo verso il mio desktop, e digito

sudo chmod 755 backupscript.sh

(cambio i permessi di modo da renderlo eseguibile al mio utente)

Incredibile abbiamo finito mi pare.
Difficile? Mah, sicuramente un poco laborioso… difficile no.

Peró la soddisfazione é massima quando ci si rende conto che si puó far fare ció che si vuole al sistema, e che c’e’ sempre o quasi una soluzione.

Probabilmente avrei potuto cercare su internet qualche script migliore di questo che mi son fatto io (con aiutini qua e la of course), peró il fai da te é troppo accattivante!

Se avete suggerimenti o links o info, postate! Buon tutto!

ale(X)

Tags:

One Response to “Linux Tutorial: il backup con Remastersys e Rsync”

  1. Ciumbia, hai fatto un bel lavorone! Di guide in giro che si pongono il problema della “strategia di backup” non ce ne sono molte.

    Per quelli come me che sono un pò pigri e preferiscono lanciare il backup manualmente, senza scrive comandi, esiste una stupenda interfaccia a rsync che si chiama grsync:
    http://appnr.com/package/grsync

    il grosso vantaggiio qui è anche l’uso di profili multipli … da provare

Leave a Reply

*
To prove you're a person (not a spam script), type the answer to the math equation shown in the picture. Click on the picture to hear an audio file of the equation.
Click to hear an audio file of the anti-spam equation