Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[TIP]initscript per automatizzare un backup minimale
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools)
View previous topic :: View next topic  
Author Message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4514
Location: Somewere around the world

PostPosted: Sat Jun 24, 2006 3:04 pm    Post subject: [TIP]initscript per automatizzare un backup minimale Reply with quote

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 :wink:

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 :wink:

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 :wink:

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 :wink:
Io che di solito tengo i dati su altre partizioni (quindi ho home piccole) ci backuppo anche le home (circa 250 mega) per sicurezza :P

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
View user's profile Send private message
Luca89
Advocate
Advocate


Joined: 27 Apr 2005
Posts: 2107
Location: Agrigento (Italy)

PostPosted: Sat Jul 01, 2006 9:23 pm    Post subject: Reply with quote

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
View user's profile Send private message
syntaxerrormmm
Guru
Guru


Joined: 17 Apr 2005
Posts: 449
Location: Romano di Lombardia - BG - ITALY

PostPosted: Sun Jul 02, 2006 10:19 am    Post subject: Re: [TIP]initscript per automatizzare un backup minimale Reply with quote

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
View user's profile Send private message
Cazzantonio
Bodhisattva
Bodhisattva


Joined: 20 Mar 2004
Posts: 4514
Location: Somewere around the world

PostPosted: Sun Jul 02, 2006 10:53 am    Post subject: Re: [TIP]initscript per automatizzare un backup minimale Reply with quote

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 :wink:

@Luca89 Preferisco non implementare un /etc/conf.d/nomescript perché rende più complessa una cosa estremamente semplice :roll: (IMHO :wink: )
Comunque niente vieta che vi modifichiate lo script come vi pare e piace :wink:
_________________
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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum