THE BACK UP
Una delle cose più importanti e delicate in un computer sono i backup soprattutto quando si parla di server o di macchine di produzione , ed incorrere in nel rischio di dimenticare qualcosa , o peggio di non farlo è sempre molto alto
Di scrip automatici ce ne sono molti in giro nella rete ma vediamone uno in particolare , scritto da Giorgio Saluzzo con il mio aiuto vediamo subito lo script e poi lo commentiamo
Script originale
#!/bin/bash # smonta ftpserver.com se risulta montato umount /backup # monta ftpserver.com in ftp come directory curlftpfs -o allow_other ftp://USERNAME:PASSWORD@ftp.server.com /backup if [ `ls /backup | grep /backup | wc -l` = 1 ] then # lancia il backup con rsync e ne salva il tempo richiesto in $TEMPO TEMPO=`/usr/bin/time -f "totale %E" rsync -ar --delete /SOURCEDIR /backup/zimbra 2>&1 | grep totale | awk '{print $2}'` # calcola lo spazio occupato dal backup e lo salva in $SPAZIO SPAZIO=`du -h --total /backup | grep total | awk '{print $1}'` MESSAGGIO="Backup completato.\n- /backup size: $SPAZIO\n- time: $TEMPO\n;)" else # ftpserver offline MESSAGGIO="ftpserver offline.\n:(" fi # invia email col risultato python -c "import smtplib; server = smtplib.SMTP('<a href="http://smtp..it/" target="_blank">smtp.server.it</a>'); server.sendmail('backup@ferzip.com', ['me@ferzip.com'],'$MESSAGGIO'); server.quit()" # smonta ftpserver umount /backup
Lo script è già ben commentato e di cose da dire ce ne sono ben poche .
Ora aggiungiamo anche qualche rifinitura
come prima cosa salviamo anche la lista dei pacchetti installati , in modo che possiamo ricondizionare la situazione in pochi minuti , senza dimenticarci di nulla , per fare ciò usiamo questo comando
dpkg –get-selections > /backup/packet.info
che non fa altro che produrre un file contente la lista dei programmi installati in un formato oltre che leggibile umanamente, in grado di essere compreso da dpkg per riselezionare i nostri file
oltre alla lista dei programmi non è male recuperare anche le configurazioni di essi, per fare ciò possiamo sempre usare rsync come prima ma sulla directory /etc.
Altra modifica da fare con rsync aggiungere i parametri -b , che indica che stiamo facendo un backup; -F indica di non copiare determinate directory , nel mio caso i log che non interessano e -f questa volta in minuscolo che serve per evitare i file temporanei per la regola consiglio di vedere man
E via discorrendo per le altre directory.
vediamo lo script finale come diventa
#!/bin/bash # smonta ftpserver.com se risulta montato umount /backup # monta ftpserver.com in ftp come directory curlftpfs -o allow_other ftp://USERNAME:PASSWORD@ftp.server.com /backup if [ `ls /backup | grep /backup | wc -l` = 1 ] then # lancia il backup con rsync e ne salva il tempo richiesto in $TEMPO dpgk --get-selections > /etc/apt/pack.list TEMPO=`/usr/bin/time -f "totale %E" rsync -arb -F ’/var/log’ --delete -f ’- ~’/etc /var /home ’ /backup/backup 2>&1 | grep totale | awk '{print $2}'` # calcola lo spazio occupato dal backup e lo salva in $SPAZIO SPAZIO=`du -h --total /backup | grep total | awk '{print $1}'` MESSAGGIO="Backup completato.\n- /backup size: $SPAZIO\n- time: $TEMPO\n;)" else # ftpserver offline MESSAGGIO="ftpserver offline.\n:(" fi # invia email col risultato python -c "import smtplib; server = smtplib.SMTP('<a href="http://smtp..it/" target="_blank">smtp.server.it</a>'); server.sendmail('backup@ferzip.com', ['me@ferzip.com'],'$MESSAGGIO'); server.quit()" # smonta ftpserver umount /backup
ora basta mettere questo scrit in crontab ed il gioco è fatto ! attenzione la prima volta che si esegue puo metterci anche delle ore, ma dalla seconda rsync va in maniere incrementale , quindi tempi molto rapidi
.
Nessun tag per questo articolo.
Channel on Metacafe
Giorgio "drizzt" Salluzzo
Ciao Mattia, io suggerirei anche i pacchetti da installare per completezza d’informazione.
mosche
… ottima idea ma li aggiungerò alla versione 2.0
di questo script