BackupPC – backup dell’intero pool su nastro o file

Supponiamo che vogliate migrare una installazione di BackupPc su un’altra macchina o che vogliate fare un backup “dei backup”. Di seguito vi propongo una soluzione molto semplice che il comando dump per copiare il contenuto del pool su nastro o su file.
Perché il codice funzioni correttamente è necessario che il pool sia su un filesystem diverso da quello usato per montare la root “/”. A mio avviso, usare un mountpoint per il pool è utile non solo per il backup ma consente di ripristinare il sistema operativo senza dover spostare i dati.
supponiamo quindi che l’installazione di BackupPc sia fatta usando i percorsi di default ma utilizziamo un link che punti su un mountpoint fuori dal filesystem di root. Supponiamo di avere i seguenti mount point:

[root@morzello ~]# mount
/dev/mapper/VolGroup01-LogVol00 on / type ext3 (rw)
/dev/mapper/vgData-Data on /mnt/data type ext3 (rw)
//server-esterno/repository on /mnt/repository type cifs (rw,mand)
...

la prima cosa da fare è quella di portare l’installazione di BackupPC sotto /mnt/data creando un link simbolico su /var/lib/backuppc:

ln -s /var/lib/backuppc /mnt/data/backuppc
ls -l /var/lib/backuppc
lrwxrwxrwx  1 root  root 18 May 13  2010 backuppc -> /mnt/data/backuppc

Consiglio di creare il link prima di procedere con l’installazione altrimenti dovrete spostare i dati da un filesystem all’altro.

Lo script
Lo script non fa altro che spegnere i servizi che utilizzano il filesystem prima di procedere con il dump della partizione. Nel nostro esempio viene preso in considerazione solo BackupPc ma se ci fossero altri servizi bisogna gestirli correttamente altrimenti il comando mount usato per smontare la partizione fallirebbe:

#!/bin/bash
# Esegue il backup di /mnt/data su nastro.
# Da rirpistinare con restore rf /dev/nst0 nella
# root della partizione 

#MYDIR=$(pwd)
#cd /

echo "Controllo esecuzione backup"
ps U 'backuppc' | grep -e 'BackupPC_' && \
	echo "Impossibile proseguire. Backup in corso." && \
	exit 0

echo "Stop ai servizi che accedono alla partizione"
/sbin/service backuppc stop
/sbin/service backuppc_httpd stop

echo "Smontaggio della partizione"
/bin/umount /mnt/data

echo "Controllo con fsck"
/sbin/fsck.ext3 /dev/vgData/Data

echo "dump della partizione su nastro"

#backup su nastro:
/sbin/dump -0 -a -f /dev/nst0 -b64 -j9 /dev/vgData/Data

#backup su file
#/sbin/dump -0 -a -f /mnt/repository/backuppc-dump.bz -b64 -j9 /dev/vgData/Data

echo "Montaggio della partizione"
/bin/mount /mnt/data

echo "Riavvio dei servizi che accedono alla partizione"
/sbin/service backuppc start
/sbin/service backuppc_httpd start

#cd $MYDIR
echo "Fatto."

Prima di eseguire il dump lo script controlla che non vi siano backup in esecuzione da parte dell’utente backuppc. Anche in questo caso se l’utente fosse diverso è necessario modificare il codice.
Il servizio backuppc_httpd è una istanza di apache modificata proprio per backuppc; per maggiori informazioni visitare questo link:

http://www.morzello.com/index.php/installare-backuppc-su-centos/

Se invece utilizzate l’istanza di default potete sostituire il servizio con httpd.
Per quanto riguarda la destinazione, se non aveste a disposizione una unità a nastro potete cambiare il percorso di destinazione ovunque vogliate. Prendendo come esempio il comando mount indicato in precedenza potremmo ad esempio creare un file sotto /mnt/repository

Alla prossima.

Leave a comment

0 Comments.

Leave a Reply


[ Ctrl + Enter ]