[sanniolug] Makefile per fare i backup

  • From: Massimiliano Mirra <mmirra@xxxxxxxxx>
  • To: sanniolug@xxxxxxxxxxxxx
  • Date: Sun, 18 May 2003 23:31:25 +0200

Quanto segue è dedicato principalmente a R!SC, che a causa all'hard
disk malandrino non ha dormito sonni tranquilli per qualche notte. ;-)

(BTW, R!SC, i DTLA scaldano da matti e ne soffrono da matti, quindi
prova ad aprire il case dopo un paio d'ore di funzionamento e a
toccare l'hard disk: se scotta, è il caso di spendere qualche Euro su
una ventola aggiuntiva...)

Il Makefile serve ad effettuare backup completi e backup incrementali,
deve risiedere nella vostra home directory (quindi: ~/Makefile),
presuppone che esista una directory /var/backups/vostro_nome_utente,
che abbiate i permessi per scriverci, e che abbiate debitamente
personalizzato la variabile FILES.

Fatto ciò, potete richiamare le varie funzioni con:

    bard@prism:~$ make backup-du
    bard@prism:~$ make backup-full
    bard@prism:~$ make backup-inc
    
...eccetera.  Con un minimo di modifiche, dovrebbe essere possibile
redirigere un backup completo direttamente su un CD riscrivibile
(posto naturalmente che i dati da backuppare siano nei limiti di
capienza!).

Perdonate le righe più lunghe di ottanta colonne.


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


FILES=.bash_logout .bash_profile .bashrc .functions .aliases .variables 
.signatures \
.keymap .Xmodmap .xsession .ion-devel \
diary .bbdb .abbrev_defs .emacs .gnus .newsrc .newsrc.eld .todo-do \
.fetchmailrc .muttrc Makefile \
bin doc lib \
GnusMail Mail News \
Music \
incoming news \
src txt wiki archive 

BACKUP_DIR=/var/backups/$(USER)
FULL_STAMP=$(BACKUP_DIR)/full
FULL_FILE=$(BACKUP_DIR)/full-$(shell date -I).tar.gz
INC_FILE=$(BACKUP_DIR)/inc-$(shell date -I).tar.gz

# Effettua un backup completo dei file e delle directory in $(FILES)

backup-full: backup-clean
        touch $(FULL_STAMP)
        find $(FILES) -print ! -name '*~' ! -name '*.o' | tar vzcf $(FULL_FILE) 
-T-

# Effettua un backup dei soli file modificati o creati dopo l'ultimo
# backup completo

backup-inc:
        find $(FILES) -newer $(FULL_STAMP) ! -type d -print ! -name '*~' ! 
-name '*.o' | tar vzcf $(INC_FILE) -T- --exclude='*~' --exclude='*.o'

# Calcola la quantità di megabyte necessari a un backup completo

backup-du:
        du -hcs $(FILES) --exclude '*~' --exclude '*.o' --exclude '*.elc'

# Come sopra, ma mostra i risultati in ordine

backup-du-sort:
        du -kcs $(FILES) --exclude '*~' --exclude '*.o' --exclude '*.elc' | 
sort -g 

# Elimina i backup fatti sinora... da usare con prudenza! :-)

backup-clean:
        rm -rf $(BACKUP_DIR)/*


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



-- 
Tip | [RPM] Cosa si fa se, per intallare un programma, ne viene richiesto un
of  | altro che a sua volta fa riferimento al primo?  Si scaricano tutti i
the | file necessari, li si mette in una unica cartella e poi da console:
day | 
0021| # rpm -Uvh *.rpm

Other related posts:

  • » [sanniolug] Makefile per fare i backup