HomeBlog3. Download e archiviazione dei backup - Joomla

3. Download e archiviazione dei backup - Joomla

20100207_uc3

Eccoci al terzo articolo della serie Gestione e automazione del processo di Backup di siti Joomla.

Nell'articolo precedente abbiamo visto come richiamare il componente JoomlaPack utilizzando wget per fare le chiamate via http ed avviare i nostri backup. Per rendere il tutto automatico abbiamo schedulato il tutto tramite crontab.

Possiamo creare uno script  backup-db.sh contenente sia le wget per la crezione dei backup ed infine i comandi per scaricare i backup archiviandoli in una cartella apposità.

Come possiamo vedere nello script seguente abbiamo inserito n chiamate wget quanti sono i nostri siti per poi passare al downloading sfruttando le potenzialità del comando lftp.

{codecitation style="brush: shell;"}

#!bin/bash
wget --max-redirect=1000 "http://www.nomesito1.it/index2.php?option=com_joomlapack&view=backup&key={parola segreta1}&profile=2&format=raw"
wget --max-redirect=1000 "http://www.nomesito2.com/index2.php?option=com_joomlapack&view=backup&key={parola segreta2}&profile=2&format=raw"
wget --max-redirect=1000 "http://www.nomesito3.it/index2.php?option=com_joomlapack&view=backup&key={parola segreta3}&profile=2&format=raw"
...
...
...

cd /Backup/wwwonline
mkdir $(date +%Y%m%d)
cd $(date +%Y%m%d)
lftp -f /Backup/script/ftpaccount-db

{/codecitation}

Il comando lftp richiama un file ftpaccount-db con tutte le informazioni per il downloading (comando mget *.sql) e l'eliminazione (mrm *.sql).

Diamo uno sguardo a questo file.

{codecitation style="brush: shell;"}
# This script is executed by
# lftp script
debug 10

open ftp.nomesito1.it
user username password
cd domains/nomesito1.it/.../administrator/components/com_joomlapack/backup/
mget *.sql
mrm *.sql
queue stop

open ftp.nomesito2.it
user username password
cd domains/nomesito2.it/.../administrator/components/com_joomlapack/backup/
mget *.sql
mrm *.sql
queue stop

open ftp.nomesito2.it
user username password
cd domains/nomesito2.it/.../administrator/components/com_joomlapack/backup/
mget *.sql
mrm *.sql
queue stop

{/codecitation}

A questo punto non ci resta che schedulare il lancio del batch con CRON e abbiamo automatizzato il processo di backup.

{codecitation style="brush: shell;"}

crontab -e

0 22 * * 0,1,2,3,4,5 /path/backup-db.sh
0 22 * * 6 /path/backup-db.sh
{/codecitation}

In questo modo da domenica a venerdi alle 22 verrà eseguito il batch per il backup dei database e al sabato quello completo. Per ogni giorno avremo una nuova cartella con tutti i backup.

Lo stesso processo può essere utilizzato una volta alla settimana per il backup degli ambienti.

Nel prossimo articolo vedremo come creare in locale un ambiente identico a quello online partendo dai backup scaricati.