Salve,
consapevole che lo script proposto nel post precedente relativamente al backup di ISPconfig può non funzionare su tutti i sistemi senza opportune modifiche, ho approntato una soluzione più veloce e semplice basata su rsync.
DISCLAIMER : il seguente script non è testato o comunque adatto su sistemi in produzione. Declino ogni responsabilità per eventuali danni.
Assumendo che A sia la macchina su cui è montato ISPconfig e B la macchina su cui si vuole salvare il backup, creiamo su B il seguente script :
ed installiamo rsync su entrambe le macchine.Codice:#!/bin/bash DIR="/root" RSYNC="/usr/bin/rsync -avp" HOST="xxx.xxx.xxx.xxx" ##l'ip della macchina con ISPconfig etc () { $RSYNC -e"ssh" $HOST:/etc/ $DIR/etc } usr () { $RSYNC -e"ssh" $HOST:/usr/ $DIR/usr --exclude-from=$DIR/ESCLUDIusr } var () { $RSYNC -e"ssh" $HOST:/var/ $DIR/var --exclude-from=$DIR/ESCLUDIvar } db () { $RSYNC -e"ssh" $HOST:/root/db_backup.tar $DIR } # #start # etc && usr && var && db
Le opzioni passate a rsync contengono direttive su alcune cartelle da ignorare durante il trasferimento (contengono file di lock ed altri file che non sono essenziali nel restore del sistema) e sono :
eCodice:--exclude-from=$DIR/ESCLUDIusr
Il file ESCLUDIusr conterrà le seguenti righe :Codice:--exclude-from=$DIR/ESCLUDIvar
il file ESCLUDIvar invece conterrà le seguenti righe :Codice:include/ sbin/ bin/ share/man/* share/doc/* vim/ terminfo/ keymaps/ lib/ X11R6/ games/ consolefonts/ consoletrans/ tcltk/
per terminare con la macchina B inseriamo il seguente job in crontab (esegue il backup alle 20:35 ogni giorno)Codice:backups/ lib/apt/ cache/ run/ lock/ opt/ tmp/ lib/amavis/ spool/postfix/dev/log spool/postfix/public/ spool/postfix/private/ spool/postfix/var/run/
Adesso passiamo alla macchina A. Creiamo il seguente script :Codice:35 20 * * * sh /root/back_ispconfig.sh
perchè ho separato le due parti del backup? Sulla macchina A non sono consentiti accessi remoti ai database dunque è preferibile creare i dump in locale e poi trasferirli. Sulla macchina A inseriamo il job relativo al dump dei database (esegue il dump alle 20:30 ogni giorno) :Codice:#!/bin/bash BACKUP_DIR="/root/db_backup" DBUSER="root" DBPASSWD="mypass" ##la password di mysql TAR="/bin/tar -cPf" RM="/bin/rm -rf" DUMP="/usr/bin/mysqldump" ####### ##START ####### backup_database() { mkdir $BACKUP_DIR echo "Eseguo il backup dei database..." sleep 2 $DUMP -u$DBUSER -p$DBPASSWD --add-drop-table --add-locks --lock-tables --quick --allow-keywords dbispconfig > $BACKUP_DIR/dbispconfig.sql $DUMP -u$DBUSER -p$DBPASSWD --add-drop-table --add-locks --lock-tables --quick --allow-keywords database2 > $BACKUP_DIR/database2.sql $DUMP -u$DBUSER -p$DBPASSWD --add-drop-table --add-locks --lock-tables --quick --allow-keywords database1 > $BACKUP_DIR/database1.sql echo "Creo archivio dei database..." sleep 2 $TAR $BACKUP_DIR.tar $BACKUP_DIR && $RM $BACKUP_DIR } backup_database
A questo punto possiamo lasciare fare in autonomia alle due macchine, mentre A creerà i dump dei database, cinque minuti dopo la macchina B preleverà i file aggiornati creando un backup aggiornato del sistema.Codice:30 20 * * * sh /root/backup_db.sh
Gli script sono espandibili e personalizzabili.
Considerazioni : ISPconfig è un ottimo pannello ma la mancanza di una procedura per il backup integrata direttamente nel sistema rappresenta una grave lacuna.
Saluti.


LinkBack URL
About LinkBacks


Rispondi Citando

Segnalibri