Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Immutable Page
  • Info
  • Attachments
  • attachment:script-backup-dar.txt of AmministrazioneSistema/BackupDelSistema/BackupConDar

Attachment 'script-backup-dar.txt'

Download

   1 #/bin/sh
   2 
   3 #########################
   4 # SCRIPT BACKUP CON DAR #
   5 #########################
   6 
   7 # Questo script vi permette di creare dei backup
   8 # personalizzati utilizzando il comando dar, più
   9 # versatile rispetto a tar per quanto riguarda il
  10 # backup su disco invece che su nastro.
  11 # Lo script è creato in maniera non-interattiva, per
  12 # permetterne l'integrazione con cron.
  13 #
  14 # Lo script crea, nella cartella in cui si effettua il
  15 # backup, varie sottocartelle, ognuna contenente un backup,
  16 # sia esso differenziale o completo. Questo perchè ogni backup
  17 # può essere formato da diversi files, e questo ne aumenta
  18 # l'organizzazione, anche se ci fermiano ad un livello per non
  19 # complicare troppo le cose.
  20 
  21 ### CONFIGURAZIONE ###
  22 
  23 # Cartella di cui effettuare il backup
  24 HOME_DIR=/home/daniele/daBackuppare
  25 
  26 # Percorso in cui andremo ad effettuare il backup
  27 BACKUP_DIR=/media/disco_backup/cartella_backup
  28 
  29 # Nome base del file di backup
  30 BACKUP_NAME=dar_backup
  31 
  32 # Dimensione massima di uno slice
  33 BACKUP_SLICE_SIZE=600M
  34 
  35 # Suffisso per il backup completo
  36 BACKUP_COMPLETE_SUF="_comp"
  37 
  38 # Suffisso per il backup differenziale
  39 BACKUP_DIFFERENTIAL_SUF="_diff"
  40 
  41 # Numero di backup (totale+differenziali), prima della
  42 # creazione del successivo backup completo
  43 BACKUP_INTERVAL=3
  44 
  45 # Testare il backup
  46 BACKUP_TEST="yes"
  47 
  48 # Lista di path da escludere dal backup
  49 EXCLUDED_PATH[0]=Temp
  50 EXCLUDED_PATH[1]=Compilare
  51 EXCLUDED_PATH[2]=Download
  52 
  53 # Conservare i percorsi delle directory escluse dal backup
  54 # L'array precedente specifica che non deve essere effettuato
  55 # il backup dei file contenuti in queste directory, ma a volte
  56 # è utile conservare la gerarchia, per evitare di doverle rifare
  57 # a mano
  58 INCLUDE_EXCLUDED_PATH="no"
  59 
  60 # Lista dei pattern di file da escludere
  61 EXCLUDED_FILE_PATTERN[0]="*.tmp"
  62 EXLUDED_FILE_PATTERN[1]="~*"
  63 
  64 # Utilizzare la compressione durante il backup
  65 USE_COMPRESSION="yes"
  66 
  67 # Tipo di compressione: scegliere fra gzip oppure bzip2
  68 COMPRESSION_TYPE="bzip2"
  69 
  70 # Livello di compressione: 0-9
  71 COMPRESSION_LEVEL=6
  72 
  73 # Dimensione minima di un file per dover essere compresso
  74 COMPRESSION_MINIMUM_FILE_SIZE=512
  75 
  76 # Modalità verbose
  77 VERBOSE="yes"
  78 
  79 # Pattern dei files da non comprimere
  80 NOT_COMPRESSED_FILES[0]="*.mp3"
  81 NOT_COMPRESSED_FILES[1]="*.jpg"
  82 NOT_COMPRESSED_FILES[2]="*.zip"
  83 NOT_COMPRESSED_FILES[3]="*.rar"
  84 NOT_COMPRESSED_FILES[4]="*.png"
  85 NOT_COMPRESSED_FILES[5]="*.gz"
  86 NOT_COMPRESSED_FILES[6]="*.gzip"
  87 
  88 
  89 ### ESECUZIONE DELLO SCRIPT ###
  90 
  91 # Analizziamo il contenuto della cartella di backup, per
  92 # contare il numero di backup differenziali, se ce ne sono,
  93 # e decidere se creare un backup completo o differenziale.
  94 
  95 # Contiamo il numero di directory di backup
  96 NUM_DIR=`ls -F ${BACKUP_DIR} | grep -c ${BACKUP_NAME}.*./`
  97 
  98 # Calcoliamo il modulo fra il numero di directory di backup
  99 # e quelle necessarie al prossimo backup completo
 100 let "MOD=$NUM_DIR % BACKUP_INTERVAL"
 101 
 102 # Se questo valore è pari a 0, o non esiste il backup
 103 # oppure abbiamo raggiunto il limite dei backup differenziali
 104 # per cui dobbiamo creare un backup completo
 105 # altrimenti creiamo il suffisso del backup differenziale
 106 # con il numero associato
 107 
 108 if [[ $MOD = "0" ]]
 109 then
 110 	SUF=${BACKUP_COMPLETE_SUF}
 111 else
 112 	SUF=${BACKUP_DIFFERENTIAL_SUF}_${MOD}
 113 	DIFF_OPTION=`ls ${BACKUP_DIR} | grep ${BACKUP_NAME}.*.${BACKUP_COMPLETE_SUF} | tail --lines=1`
 114 fi
 115 
 116 
 117 # Path completo della directory di backup
 118 BACKUP_COMPLETE_PATH=$BACKUP_DIR/${BACKUP_NAME}_`date -I`${SUF}
 119 
 120 # creazione della directory di backup
 121 mkdir $BACKUP_COMPLETE_PATH
 122 
 123 # Esecuzione del backup con tutte le opzioni del caso
 124 dar \
 125 -R ${HOME_DIR} \
 126 -c ${BACKUP_COMPLETE_PATH}/${BACKUP_NAME}_`date -I`${SUF} \
 127 -s ${BACKUP_SLICE_SIZE} \
 128 `if [[ ${USE_COMPRESSION} = "yes" ]]
 129 then
 130 	if [[ ${COMPRESSION_TYPE} = "bzip2" ]]
 131 	then
 132 		echo -y${COMPRESSION_LEVEL}
 133 	else
 134 		echo -z${COMPRESSION_LEVEL}
 135 	fi
 136 	 	for i in "${NOT_COMPRESSED_FILES[@]}"
 137   	do
 138 		echo -Z $i
 139   	done
 140 fi` \
 141 `if [[ ${VERBOSE} = "yes" ]]
 142 then
 143 	echo -v
 144 fi` \
 145 `if [[ ${INCLUDE_EXCLUDED_PATH} = "yes" ]]
 146 then
 147 	echo -D
 148 fi` \
 149 `for i in "${EXLUDED_PATH[@]}"
 150 do
 151 	echo -P $i
 152 done` \
 153 `for i in "${EXCLUDED_FILE_PATTERN[@]}"
 154 do
 155 	echo -X $i
 156 done` \
 157 `if [[ ${MOD} -ne "0" ]]
 158 then
 159 	echo -A ${BACKUP_DIR}/${DIFF_OPTION}/${DIFF_OPTION}
 160   	
 161 fi`
 162 
 163 # Test del backup
 164 if [[ $BACKUP_TEST="yes" ]]
 165 then
 166 	dar -t ${BACKUP_COMPLETE_PATH}/${BACKUP_NAME}_`date -I`${SUF}
 167 fi

Attached Files

To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.
  • [get | view] (24/09/2007 14.24.58, 4.2 KB) [[attachment:script-backup-dar.txt]]
  • [get | view] (14/02/2008 18.24.48, 4.2 KB) [[attachment:script-backup-dar2.txt]]
 All files | Selected Files: delete move to page copy to page

You are not allowed to attach a file to this page.