Non inizio il post dicendo che fare il backup è importante. Lo sappiamo…..

Lo inizio dicendo che ci sono 1.000 metodi per farlo. Come al solito molto dipende da quali dati dobbiamo mettere sotto backup, qual’è la frequenza di aggiornamento delle informazioni ecc, ecc.

Al backup ci si potrebbe dedicare un libro.

In questo post, proveremo a vedere come fare un semplice backup di un sito web (realizzato con Drupal o con MySQL + PHP) con frequenza giornaliera.

Nel caso il sito sia stato realizzato utilizzando Drupal possiamo usare DRUSH per fare il dump della base di dati.
Di seguito lo script

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
#! /bin/sh

# configurazioni
#
#

# posizione di drush
DRUSH=/home/fizban/drush/drush

#directory www
WWW_DIR=/var/www/miosito

#dove mettere il file di backup
BCK_FILE=/home/fizban/backup/miosito

# inizio
#
#

cd $WWW_DIR

#crea la directory per il dump del SQL
mkdir -p $WWW_DIR/SQLDump

# esegue il dump del DB
$DRUSH sql-dump > SQLDump/dump.sql

# fa un tar.gz di tutta la directory HTML + SQL
tar cvfz $BCKFILE_`date +%F`.tar.gz $WWW_DIR

# cancella il file del dump
rm $WWW_DIR/SQLDump/dump.sql

## cancella i file più vecchi di 3 giorni dalla directory dei backup
find $BCK_FILE -type f -mtime +3 | xargs rm

Da notare la riga:

1
tar cvfz $BCKFILE_`date +%F`.tar.gz $WWW_DIR

Che crea un file ed aggiunge nel nome la data di esecuzione del backup.

In fine la riga:

1
find $BCK_FILE -type f -mtime +3 | xargs rm

Che ricerca nella directory dei backup file più vecchi di 3 giorni attraverso il comando find.

Infine l’uso di xargs, invece, permette di richiamare il comando ‘rm’ passandogli come argomento il nome dei file selezionati da find.

Se non abbiamo a disposizione drush (sia perché il sito non è stato fatto con Drupal o perché drush non è stato installato) possiamo modificare lo script nel seguente modo:

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
#! /bin/sh

# configurazioni
#
#
# posizione di drush
DRUSH=/home/fizban/drush/drush

# MySQL
MYSQLDUMP = /usr/bin/mysqldump          # posizione di MySQL
MY_USER = "username"                    # MySQL username
MY_PWD = "password"                     # MySQL password
MY_DB = "database"                      # Database MySQL da salvare

# directory www
WWW_DIR=/var/www/miosito

# dove mettere il file di backup
BCK_FILE=/home/fizban/backup/miosito

#
# inizio
#

cd $WWW_DIR

#crea la directory per il dump del SQL
mkdir -p $WWW_DIR/SQLDump

# esegue il dump del DB
$MYSQLDUMP $MY_DB -u $MY_USER --password=$MY_PWD > SQLDump/dump.sql

# fa un tar.gz di tutta la directory HTML + SQL
tar cvfz $BCKFILE_`date +%F`.tar.gz $WWW_DIR

# cancella il file del dump
rm $WWW_DIR/SQLDump/dump.sql

## cancella i file più vecchi di 3 giorni dalla directory dei backup
find $BCK_FILE -type f -mtime +3 | xargs rm

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *