We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

[SCRIPT] Backup Full de un servidor linux


djbill
24/09/2013, 12:44
Buenas, a continuacion os dejo un script que realiza un backup full del servidor y lo sincroniza con Mega.co.nz

Para el funcionamiento del almacenamiento en la nube se necesitan las MegaTool que se pueden obtener de http://megatools.megous.com/

Código:
#!/bin/bash
# Script que crea un backup full del servidor

function log {
        curenttime_x=`date "+%Y-%m-%d %H:%M:%S"`
        echo "$curenttime_x - $1 $2 $3 $4 $5 $6 $7 $8 $9" >> $LOG_DIR/$LOG_FILE
}

function email {
	echo "Subject: `hostname` Full System Backup `date +'%F'` log" > $TMP_DIR/$EML_FILE
	echo "From: localhost@`hostname`" >> $TMP_DIR/$EML_FILE
	echo "To: $EMAILTO" >> $TMP_DIR/$EML_FILE
	echo "" >> $TMP_DIR/$EML_FILE
	cat $1 $2 $3 $4 $5 $6 $7 $8 $9 >> $TMP_DIR/$EML_FILE
	cat $TMP_DIR/$EML_FILE | /usr/sbin/sendmail -t
	rm -f $TMP_DIR/$EML_FILE 2>/dev/null
}

#Direccion de email para enviar los log
EMAILTO=tudirecciondecorreo@gmail.com

#define fecha YYYYmmddHHMMSS
FECHA=`date '+%Y%m%d%H%M%S'`

#define backup_dir
BACKUP_DIR=/backup/`hostname`

#define backup_file
BACKUP_FILE=FullBackup-`hostname`_$FECHA.tar.gz

#define log_dir
LOG_DIR=$BACKUP_DIR/log

#define log_file
LOG_FILE=FullBackup-`hostname`_$FECHA.log

#define tmp_dir
TMP_DIR=$BACKUP_DIR/tmp

#define eml_file
EML_FILE=FullBackup-`hostname`_$FECHA.eml

#
#Ejecucion del backup
log "Inicio del empaquetado y compresion de los ficheros"
tar -zcpf $BACKUP_DIR/$BACKUP_FILE --directory=/ --exclude=run/* --exclude=proc --exclude=sys --exclude=dev/pts --exclude=backup/`hostname` .
log "Fin del empaquetado y compresion de los ficheros"

#Repaldo de Backups en CLOUD
log "Copiando $BACKUP_DIR/$BACKUP_FILE a CLOUD en /Root/Backup_`hostname`"
/usr/local/bin/megaput --no-ask-password --no-progress --reload --config=/root/.megarc --path=/Root/Backup_`hostname` $BACKUP_DIR/$BACKUP_FILE 2>/dev/null
log "Finalizada la copia en CLOUD"

#Borrado de ficheros antiguos y temporales
log "Borrado de ficheros antiguos y temporales"
find $LOG_DIR -name "FullBackup-`hostname`_*.log" -mtime +6 >>$LOG_DIR/$LOG_FILE 2>/dev/null
find $LOG_DIR -name "FullBackup-`hostname`_*.log" -mtime +6 -exec rm -f '{}' \; 2>/dev/null
find $BACKUP_DIR -name "FullBackup-`hostname`_*.tar.gz" -mtime +6 >>$LOG_DIR/$LOG_FILE 2>/dev/null
find $BACKUP_DIR -name "FullBackup-`hostname`_*.tar.gz" -mtime +6 -exec rm -f '{}' \; 2>/dev/null

log "Fin del Script"

#Envio por email del fichero de log.
email $LOG_DIR/$LOG_FILE

exit 0
Fichero de configuracion de MegaTools en "/root/.megarc":

Código:
[Login]
Username=tuusuario
Password=tupassword
Un saludo.