View previous topic :: View next topic |
Author |
Message |
Cazzantonio Bodhisattva
Joined: 20 Mar 2004 Posts: 4514 Location: Somewere around the world
|
Posted: Sat Jun 24, 2006 3:04 pm Post subject: [TIP]initscript per automatizzare un backup minimale |
|
|
Allora dopo alcune disavventure ho ritenuto utile creare uno script di init che mi generasse automaticamente un backup di alcune cartelle critiche del sistema onde avere un modo per rimettere in piedi il sistema rapidamente (salvo compilazioni) in caso di rm -rf / o altre calamità simili
Questo script di init è veramente stupido ma secondo me può essere VERAMENTE utile averlo nel runlevel
In pratica crea un backup di /etc /boot /root e /var/lib/portage/world (l'elenco di pacchetti installati).
Può essere ovviamente esteso in modo banale per creare backup anche di altre cartelle o files... a voi la scelta
Crea un backup giornaliero in $DIR_BACKUP come definito all'inizio e tiene anche un backup del giorno prima per precauzione.
Non crea più di un backup al giorno nel caso riavviate il pc svariate volte
Ovviamente la cosa migliore sarebbe avere $DIR_BACKUP montata su un filesystem a parte e ricordarsi ogni tanto di mettere tale backup su cd o altro mezzo atto a sopravvivere alla distruzione fisica del vostro hard-disk
Se optate per una simile saggia scelta basta mettere una riga "mount $DIR_BACKUP" all'inizio e "umount $DIR_BACKUP alla fine della funzione "stop" per montare e smontare tale partizione di backup (definita in fstab) in modo automatico
Nel caso siate preoccupati di quanto ci possa mettere a fare il backup sappiate che le cartelle di cui sopra sono di solito abbastanza piccole. A me impiega (su un portatile) meno di un secondo per creare un backup di 68 mega... quindi ne vale sicuramente la pena
Io che di solito tengo i dati su altre partizioni (quindi ho home piccole) ci backuppo anche le home (circa 250 mega) per sicurezza
Ecco lo script:
Code: | #!/sbin/runscript
depend() {
need clock localmount hostname
}
start() {
return 0
}
stop() {
ebegin "backup sistema"
DIR_BACKUP=/home/backup
if test -e $DIR_BACKUP/update_`date '+%d_%b_%Y'`
then
einfo "il backup di oggi esiste"
einfo "Non verra' creato piu' di un backup al giorno"
else
if test -e $DIR_BACKUP/backup_system.tar
then
mv $DIR_BACKUP/backup_system.tar $DIR_BACKUP/backup_system_old.tar -f
fi
tar -cvpf $DIR_BACKUP/backup_system.tar /root/ &> /dev/null
tar -uvpf $DIR_BACKUP/backup_system.tar /etc/ &> /dev/null
tar -uvpf $DIR_BACKUP/backup_system.tar /var/lib/portage/world &> /dev/null
tar -uvpf $DIR_BACKUP/backup_system.tar /boot/ &> /dev/null
rm $DIR_BACKUP/update* -f
touch $DIR_BACKUP/update_`date '+%d_%b_%Y'`
chmod 600 $DIR_BACKUP/ -R
einfo "backup creati"
fi
eend $?
}
|
Chiamatelo come vi pare, copiatelo in /etc/init.d/ e aggiungetelo al vostro runlevel preferito _________________ Any mans death diminishes me, because I am involved in Mankinde; and therefore never send to know for whom the bell tolls; It tolls for thee.
-John Donne
Last edited by Cazzantonio on Sun Jul 02, 2006 10:50 am; edited 1 time in total |
|
Back to top |
|
|
Luca89 Advocate
Joined: 27 Apr 2005 Posts: 2107 Location: Agrigento (Italy)
|
Posted: Sat Jul 01, 2006 9:23 pm Post subject: |
|
|
Nella funzione start(), invece di fare quell'echo è molto più pulito mettere "return 0" visto che non vuoi fargli fare nulla. Per quanto riguarda la DIR_BACKUP non conviene definirla nello script, credo sia meglio farlo in /etc/conf.d/nomescript (file che viene caricato automaticamente), stassa cosa farei per le directory di cui fare il backup. Inoltre io la vedrei molto meglio in /etc/conf.d/local.stop anzichè fare un nuovo script di avvio, questione di gusti comunque. _________________ Running Fast! |
|
Back to top |
|
|
syntaxerrormmm Guru
Joined: 17 Apr 2005 Posts: 449 Location: Romano di Lombardia - BG - ITALY
|
Posted: Sun Jul 02, 2006 10:19 am Post subject: Re: [TIP]initscript per automatizzare un backup minimale |
|
|
Grazie Cazzantonio per le tue solite cosette utili Giusto una curiosità:
Code: | echo "" > $DIR_BACKUP/update_`date '+%d_%b_%Y'` | perché non: Code: | touch ${DIR_BACKUP}/update$(date +%F) | ?
Ciao e grazie ancora _________________ "Every rule can be broken, but no rule may be ignored."
Last.fm - Gentoo 2006.1 on:
Acer Aspire 1355LC - suspend2-sources-2.6.18-r3
IBM Thinkpad T30 - suspend2-sources-2.6.19-r3 |
|
Back to top |
|
|
Cazzantonio Bodhisattva
Joined: 20 Mar 2004 Posts: 4514 Location: Somewere around the world
|
Posted: Sun Jul 02, 2006 10:53 am Post subject: Re: [TIP]initscript per automatizzare un backup minimale |
|
|
syntaxerrormmm wrote: | perché non: Code: | touch ${DIR_BACKUP}/update$(date +%F) | ? |
Boh è uguale... (a parte il fatto che prederisco gli underscore perché sono più standard)
Fatte le modifiche suggerite da syntaxerrormmm e Luca89
@Luca89 Preferisco non implementare un /etc/conf.d/nomescript perché rende più complessa una cosa estremamente semplice (IMHO )
Comunque niente vieta che vi modifichiate lo script come vi pare e piace _________________ Any mans death diminishes me, because I am involved in Mankinde; and therefore never send to know for whom the bell tolls; It tolls for thee.
-John Donne |
|
Back to top |
|
|
|