15 d’oct. 2008

Script para backups sistema linux con tar

#!/bin/bash
# full and incremental backup script

#Cambiar estos 5 valores para adecuarlo al sistema

MAQUINA=debian # nombre de la máquina
DIRECTORIOS=”/bin /boot /emul /etc /initrd /lib /opt /root /sbin /srv /usr /var” #directorios a respaldar
BACKUPDIR=/home/Backups # Directorio donde se guarda el backup (debe existir)
FECHADIR=/home/Backups # Directorio donde se guarda la fecha del último backup completo
TAR=/bin/tar # localización del ejecutable tar (se localiza con whereis tar)

# A partir de aquí no hace falta tocar nada

PATH=/usr/local/bin:/usr/bin:/bin
DSEM=`date +%a` # Día de la semana (por ej. mié)
DMES=`date +%d` # Día del mes (por ej. 06)
DM=`date +%d%b` # Día y mes (por ej. 06jun)

# Cada 1 de mes se hace un backup completo
# Cada Domingo se hace otro backup completo sobrescribiendo el backup del domingo anterior
# Cada día se realiza un backup incremental. Cada backup incremental sobrescribe
# el backup incremental del mismo día de la semana anterior.
# “NUEVO” coge la fecha del backup completo de cada domingo para
realizar un backup de los archivos creados a partir de la fecha de "NUEVO".

# Backup mensual completo - sobrescribe el del mes anterior
if [ $DMES = "01" ]; then
$TAR -cf $BACKUPDIR/$MAQUINA-$DM.tar $DIRECTORIOS
fi

# Backup semanal completo
if [ $DSEM = "dom" ]; then
AHORA=`date +%d-%b`

# Actualizar fecha del backup completo
echo $AHORA > $FECHADIR/$MAQUINA-fecha-backup-completo
$TAR -cf $BACKUPDIR/$MAQUINA-$DSEM.tar $DIRECTORIOS

# Backup incremental diario - sobrescribe el de la semana anterior
else

# Obtener fecha del último backup completo
NUEVO="--newer=`cat $FECHADIR/$MAQUINA-fecha-backup-completo`"
$TAR $NUEVO -cf $BACKUPDIR/$MAQUINA-$DSEM.tar $DIRECTORIOS
fi


link de la font