ferzip.com

Ti serve un programmatore sistemista freelance…contattami!

THE BACK UP

57521 17 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 &gt; /etc/apt/pack.list
TEMPO=`/usr/bin/time -f "totale %E" rsync -arb -F/var/log’ --delete -f ’- ~’/etc /var /home ’ /backup/backup 2&gt;&amp;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.

2 Responses to “THE BACK UP”

  1. Ciao Mattia, io suggerirei anche i pacchetti da installare per completezza d’informazione. :)

  2. … ottima idea ma li aggiungerò alla versione 2.0 ;) di questo script

Leave a Reply

Get Adobe Flash playerPlugin by wpburn.com wordpress themes