<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.slacky.eu/wikislack/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
		<id>http://www.slacky.eu/wikislack/index.php?title=Backup_by_Tongiu&amp;feed=atom&amp;action=history</id>
		<title>Backup by Tongiu - Cronologia</title>
		<link rel="self" type="application/atom+xml" href="http://www.slacky.eu/wikislack/index.php?title=Backup_by_Tongiu&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=Backup_by_Tongiu&amp;action=history"/>
		<updated>2013-05-19T07:07:37Z</updated>
		<subtitle>Cronologia della pagina su questo sito</subtitle>
		<generator>MediaWiki 1.20.3</generator>

	<entry>
		<id>http://www.slacky.eu/wikislack/index.php?title=Backup_by_Tongiu&amp;diff=2468&amp;oldid=prev</id>
		<title>L1q1d il 10:09, 12 set 2006</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=Backup_by_Tongiu&amp;diff=2468&amp;oldid=prev"/>
				<updated>2006-09-12T10:09:55Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Versione meno recente&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Versione delle 10:09, 12 set 2006&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riga 1:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riga 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Script]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;= Descrizione =&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;= Descrizione =&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Lo script proposto da Tongiu esegue il backup dei file contenuti in delle directory specificate nel file di configurazione&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Lo script proposto da Tongiu esegue il backup dei file contenuti in delle directory specificate nel file di configurazione&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>L1q1d</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/wikislack/index.php?title=Backup_by_Tongiu&amp;diff=2442&amp;oldid=prev</id>
		<title>L1q1d il 09:44, 12 set 2006</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=Backup_by_Tongiu&amp;diff=2442&amp;oldid=prev"/>
				<updated>2006-09-12T09:44:51Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nuova pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Descrizione =&lt;br /&gt;
Lo script proposto da Tongiu esegue il backup dei file contenuti in delle directory specificate nel file di configurazione&lt;br /&gt;
= Readme =&lt;br /&gt;
== Cosa fa ==&lt;br /&gt;
Lo script backup esegue il backup dei file contenuti in delle directory specificate nel file di configurazione&lt;br /&gt;
/usr/local/etc/backup.conf dalle variabili SOURCE[1] SOURCE[2] etc.&lt;br /&gt;
Per aggiungere una directory di cui fare il backup basta aggiungere le corrispondenti variabili nel file di&lt;br /&gt;
configurazione.&lt;br /&gt;
&lt;br /&gt;
== Backup Totale/Incrementale ==&lt;br /&gt;
Il backup sarà un backup totale, nel giorno della settimana specificato nella parte generale del file di&lt;br /&gt;
 configurazione dalla variabile GIORNO_BACK_TOTALE. Il giorno della settimana deve essere specificato in &lt;br /&gt;
inglese secondo le&lt;br /&gt;
 convenzioni del comando &amp;quot;date&amp;quot; (Sun = Sunday Mon = Monday etc).&lt;br /&gt;
Tutti gli altri giorni della settimana verrà fatto un backup incrementale, salvando solamente i file&lt;br /&gt;
 modificati durante il giorno in corso. Affinchè tutto funzioni a dovere occorre lanciare lo script prima&lt;br /&gt;
 di mezzanotte.&lt;br /&gt;
Io eseguo lo script con cron tutte le sere alle 22.30 mediante l'aggiunta della riga :&lt;br /&gt;
22 30 * * * /usr/local/bin/backup 1&amp;gt; /root/log_backup&lt;br /&gt;
in /var/spool/cron/crontabs/root.&lt;br /&gt;
Ho scelto di reindirizzare l'output in /root/log_backup ma per chi non lo ritenesse necessario si può&lt;br /&gt;
 reindirizare tutto a /dev/null.&lt;br /&gt;
&lt;br /&gt;
== Dove mettere il Backup ==&lt;br /&gt;
I file di backup saranno messi sul disco specificato nel file di configurazione con la variabile DISCO_DI_BACKUP.&lt;br /&gt;
 Ovviamente è il caso che sia un disco diverso da quello in cui ci sono i dati di cui fare i backup. Nel mio caso&lt;br /&gt;
 uso il disco di un altro PC.&lt;br /&gt;
E' necesario che ci sia una riga in fstab con i parametri per fare il mount di /mnt/backup.&lt;br /&gt;
Viene generato un file di backup per ciascuna directory indicata nel file di configurazione. I file di backup&lt;br /&gt;
 generati hanno i nomi indicati nelle variabili FILE_BACKUP[ .. ]. Mediante la variabile &amp;quot;date&amp;quot; i nomi generati&lt;br /&gt;
 comprenderanno anche l'indicazione del giorno in cui il backup è stato eseguito. I nomi saranno del tipo :&lt;br /&gt;
report_Mon_21Jun04.tgz &lt;br /&gt;
Per ciascuna directory sorgente (in cui ci sono i file di cui fare il backup) viene generata una corrispondente&lt;br /&gt;
 directory in /mnt/backup il cui nome deve essere specificato nelle variabili DIR_BACKUP[..]&lt;br /&gt;
&lt;br /&gt;
== Log ==&lt;br /&gt;
Lo script genera un file di log per ciascuna directory di cui si è fatto il backup. Il file di log viene inserito&lt;br /&gt;
 nella stessa directory in cui viene salvato il file di backup.&lt;br /&gt;
&lt;br /&gt;
== Come aggiungere una directory di cui si vuol fare backup ==&lt;br /&gt;
Le righe da aggiungere al file /usr/loca/etc/backup.conf  per aggiungere la n-esima directory sono le seguenti:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
####### N-ESIMA DIRECTORY ###########&lt;br /&gt;
SOURCE[n]=&amp;quot;/home/directory_n&amp;quot;&lt;br /&gt;
DIR_BACKUP[n]=$DISCO_DI_BACKUP&amp;quot;/directory_n&amp;quot;&lt;br /&gt;
FILE_BACKUP[n]=&amp;quot;directori_n_`date +&amp;quot;%a_%d%b%y&amp;quot;`.tgz&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
con n= 1, 2, 3, etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Esempio di backup di due directory ===&lt;br /&gt;
Il file di configurazione è fatto per fare il backup delle directory&lt;br /&gt;
 /home/report&lt;br /&gt;
 /home/directory2&lt;br /&gt;
&lt;br /&gt;
nel disco /mnt/backup.&lt;br /&gt;
I file di backup saranno:&lt;br /&gt;
&lt;br /&gt;
 /mnt/backup/report/report_Mon_21Jun04.tgz      (oggi è il 21 giugno)&lt;br /&gt;
e&lt;br /&gt;
 /mnt/backup/directory2/directory2_Mon_21Jun04.tgz&lt;br /&gt;
&lt;br /&gt;
= Da fare =&lt;br /&gt;
Lo script usa tar e zip per fare la compressione.&lt;br /&gt;
Il prossimo passo è usare DAR&lt;br /&gt;
&lt;br /&gt;
= Configurazione =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# /usr/local/etc/backup.conf&lt;br /&gt;
# file di configurazione di /usr/local/bin/backup&lt;br /&gt;
# by Tongiu GIUGNO 2004&lt;br /&gt;
&lt;br /&gt;
###### PARTE GENERALE ##############&lt;br /&gt;
&lt;br /&gt;
# disco su cui mettere i file di backup&lt;br /&gt;
DISCO_DI_BACKUP=&amp;quot;/mnt/backup&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# giorno della settimana in cui fare il backup totale&lt;br /&gt;
# in tutti gli altri giorni si fa il backup incrementale&lt;br /&gt;
GIORNO_BACK_TOT=&amp;quot;Sun&amp;quot;&lt;br /&gt;
&lt;br /&gt;
######  PRIMA DIRECTORY ###########&lt;br /&gt;
&lt;br /&gt;
# directory dove ci sono i file di cui si vuole fare il backup&lt;br /&gt;
SOURCE[1]=&amp;quot;/home/report&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# directory in cui ci saranno i file risultato del backup&lt;br /&gt;
DIR_BACKUP[1]=$DISCO_DI_BACKUP&amp;quot;/report&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# file risultato del backup&lt;br /&gt;
FILE_BACKUP[1]=&amp;quot;report_`date +&amp;quot;%a_%d%b%y&amp;quot;`.tgz&amp;quot;&lt;br /&gt;
&lt;br /&gt;
####### SECONDA DIRECTORY ###########&lt;br /&gt;
SOURCE[2]=&amp;quot;/home/directory_2&amp;quot;&lt;br /&gt;
DIR_BACKUP[2]=$DISCO_DI_BACKUP&amp;quot;/directory_2&amp;quot;&lt;br /&gt;
FILE_BACKUP[2]=&amp;quot;directory_2_`date +&amp;quot;%a_%d%b%y&amp;quot;`.tgz&amp;quot;#!/bin/sh&lt;br /&gt;
# esegure questo script con cron aggiungendo&lt;br /&gt;
# 22 30 * * * /usr/local/bin/backup 1&amp;gt; /root/log_backup&lt;br /&gt;
# in /var/spool/cron/crontabs&lt;br /&gt;
# così esegue il backup ogni sera alle 22.30&lt;br /&gt;
# e killare e riavviare cron&lt;br /&gt;
# by Tongiu GIUGNO 2004&lt;br /&gt;
&lt;br /&gt;
esegui ()&lt;br /&gt;
{&lt;br /&gt;
        SOURCE=$1&lt;br /&gt;
        DIR_BACKUP=$2&lt;br /&gt;
        FILE_BACKUP=$3&lt;br /&gt;
        GIORNO_BACK_TOT=$4&lt;br /&gt;
&lt;br /&gt;
        LOG=$DIR_BACKUP&amp;quot;/log&amp;quot;&lt;br /&gt;
        GIORNO=$(date '+%a')&lt;br /&gt;
&lt;br /&gt;
        if [ $GIORNO = $GIORNO_BACK_TOT ]; then&lt;br /&gt;
                # se fa il backup totale cancella il log&lt;br /&gt;
                rm -f $LOG&lt;br /&gt;
                touch $LOG&lt;br /&gt;
        fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        DATA=$(date '+%Y%m%d' )&lt;br /&gt;
&lt;br /&gt;
        # se non esiste la directory dove mettere il file di backup la crea&lt;br /&gt;
        if [ ! -d $DIR_BACKUP ]; then&lt;br /&gt;
                mkdir $DIR_BACKUP&lt;br /&gt;
                echo Directory di backup $DIR_BACKUP non esisteva - directory creata &amp;gt;&amp;gt; $LOG&lt;br /&gt;
        fi&lt;br /&gt;
&lt;br /&gt;
        echo &amp;gt;&amp;gt; $LOG&lt;br /&gt;
        echo ++++++++++++++++++ BACKUP di $(date '+%c' ) +++++++++++++++++++++ &amp;gt;&amp;gt; $LOG&lt;br /&gt;
        echo &amp;gt;&amp;gt; $LOG&lt;br /&gt;
&lt;br /&gt;
        DESTIN=$DIR_BACKUP&amp;quot;/&amp;quot;$FILE_BACKUP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        #rimuove il backup della settimana scorsa se esiste&lt;br /&gt;
                if [ -e $DIR_BACKUP&amp;quot;/&amp;quot;*$GIORNO* ]; then&lt;br /&gt;
                        echo esisteva backup $DIR_BACKUP&amp;quot;/&amp;quot;*$GIORNO* - rimuovo &amp;gt;&amp;gt; $LOG&lt;br /&gt;
                        rm $DIR_BACKUP&amp;quot;/&amp;quot;*$GIORNO*&lt;br /&gt;
                fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        if [ $GIORNO != $GIORNO_BACK_TOT ]&lt;br /&gt;
        then&lt;br /&gt;
                # il backup incrementale&lt;br /&gt;
                echo &amp;quot;backup incrementale&amp;quot; tar czvNf $DATA $DESTIN $SOURCE  &amp;gt;&amp;gt; $LOG&lt;br /&gt;
                tar czvNf $DATA $DESTIN $SOURCE   2&amp;gt;&amp;gt; $LOG&lt;br /&gt;
&lt;br /&gt;
        else&lt;br /&gt;
                # fai il backup totale&lt;br /&gt;
                echo &amp;quot;backup totale&amp;quot;  tar czvf $DESTIN $SOURCE  &amp;gt;&amp;gt; $LOG&lt;br /&gt;
&lt;br /&gt;
                tar czvf $DESTIN $SOURCE   2&amp;gt;&amp;gt; $LOG&lt;br /&gt;
        fi&lt;br /&gt;
&lt;br /&gt;
        echo &amp;gt;&amp;gt; $LOG&lt;br /&gt;
        echo ++++++++++++++++ FINE BACKUP +++++++++++++++++++++ &amp;gt;&amp;gt; $LOG&lt;br /&gt;
        echo &amp;gt;&amp;gt; $LOG&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Script =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
######################&lt;br /&gt;
####### MAIN #########&lt;br /&gt;
######################&lt;br /&gt;
&lt;br /&gt;
# prende le variabili dal file di configurazione in /usr/local/etc&lt;br /&gt;
source /usr/local/etc/backup.conf&lt;br /&gt;
&lt;br /&gt;
# se il disco non è montato fa il mount&lt;br /&gt;
# opzione -q di grep elimina l output ma mantiene le condizioni vero e falso&lt;br /&gt;
        if !(grep -q $DISCO_DI_BACKUP /proc/mounts) ; then&lt;br /&gt;
        mount $DISCO_DI_BACKUP&lt;br /&gt;
        fi&lt;br /&gt;
&lt;br /&gt;
# conta quante volte è presente la variabile FILE_BACKUP per sapere&lt;br /&gt;
# quante sono le directory di cui deve fare il backup&lt;br /&gt;
NUM=$(grep -c FILE_BACKUP /usr/local/etc/backup.conf)&lt;br /&gt;
&lt;br /&gt;
for i in `seq 1 $NUM`;&lt;br /&gt;
do&lt;br /&gt;
        esegui &amp;quot;${SOURCE[$i]}&amp;quot; &amp;quot;${DIR_BACKUP[$i]}&amp;quot; &amp;quot;${FILE_BACKUP[$i]}&amp;quot; &amp;quot;$GIORNO_BACK_TOT&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
umount $DISCO_DI_BACKUP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Data:    	03 Jun 2006&lt;br /&gt;
* Autore:    	Tongiu&lt;/div&gt;</summary>
		<author><name>L1q1d</name></author>	</entry>

	</feed>