fuss-backup 2.72 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#!/bin/sh
#
#
#

if [ -f /etc/fuss-backup/fuss-backup.conf ]; then
  . /etc/fuss-backup/fuss-backup.conf
else
  echo "Errore: file di configurazione non presente"
  exit 1
fi

#
if [ $START != "yes" ]; then
	echo "ERRORE: e' necessario configurare l'applicazione fuss-backup"
	echo "per avviarne l'esecuzione!"
	echo "Modificare il file /etc/fuss-backup/fuss-backup.conf"
	exit 2
fi

# data e ora correnti
DATE=`date "+%Y%m%d-%H%M"`
# creo, se non esiste, la directory principale di backup

if [ ! -d $BACKUP_DIR ]; then
       mkdir $BACKUP_DIR
fi

 # creo
# creo una directory ad hoc per contenere tutti i backup
BD=$BACKUP_DIR/fuss-backup-$DATE
mkdir $BD

# definizione dei programmi da utilizzare nello script
# se esiste il file di esclusione, utilizzarlo

if [ -f /etc/fuss-backup/fuss-backup.exclude ]; then
   echo "E' attivo un file di esclusione"
   TAR="/bin/tar --exclude-from=/etc/fuss-backup/fuss-backup.exclude"
else
   echo "Non e' stato utilizzato il file di esclusione"
   TAR=/bin/tar
fi


### LDAP ###
# controlla se e' installato LDAP, se si fai il backup
if [ -f /etc/init.d/slapd ]; then
	# leggo dati da ldap, interrompendo il servizio Q.B.
	/etc/init.d/slapd stop
	slapcat | gzip > $BD/backup-ldap-$DATE.ldif.gz
	/etc/init.d/slapd start
fi

### LISTA SOFTWARE INSTALLATO ###
# leggo la lista del software installato SUL SERVER e la salvo

dpkg --get-selections | gzip > $BD/lista-sw-$HOSTNAME-$HOSTNAME-$DATE.txt.gz

### BACKUP DI HOME ###
# fare backup di /home se non siamo su di un
# client NFS
if touch /home/.test-fuss-backup ; then
	HOMES="/home $HOME"
else
	HOMES="$HOME"
fi

$TAR -zcf $BD/backup-home-$DATE.tar.gz $HOMES


### BACKUP DEL DATABASE DI OCTOFUSS, SE PRESENTE
if [ -d /var/lib/octofuss/ ]; then
	$TAR -zcf $BD/backup-octofuss-$DATE.tar.gz /var/lib/octofuss/
fi

### BACKUP DI ETC ###
$TAR -zcf $BD/backup-etc-$DATE.tar.gz /etc

### BACKUP DI /VAR/LOG ###
$TAR -zcf $BD/backup-var-log-$DATE.tar.gz /var/log/

### BACKUP DI ALTRE CARTELLE AGGIUNTIVE ###
# eseguo il backup della cartelle aggiuntive
# solo se specificate nel file di configurazione

if [ "$ALTRE_DIR" ]; then
   $TAR -zcf $BD/backup-altro-$DATE.tar.gz $ALTRE_DIR
fi


### IL BACKUP VIENE SPEZZATO SE RICHIESTO ###
## da spezzare anche gli altri oltre a home!!! ###

if [ "$SPLIT" ]; then
	cd $BD
        split -d -b $SPLIT backup-home-$DATE.tar.gz backup-home-$DATE.tar.gz.
	rm backup-home-$DATE.tar.gz
fi


## STORICO ##
# manteniamo $STORICO backup vecchi 

if [ $STORICO -ge 0 ]; then
	STORICO=`expr $STORICO + 1`
	cd $BACKUP_DIR
	TOTALE=`ls -d fuss-backup-* | wc -l`
	DAELIMINARE=`expr $TOTALE - $STORICO`
	if [ $DAELIMINARE -gt 0 ]; then
		for i in `ls -d fuss-backup-* | head -$DAELIMINARE`; do
		 echo "Elimino il backup $i" 
		 rm -rf $i
		done
	fi
	
fi