Aquesta és una revisió antiga del document


backup 10 minutos al día

Mira en los directorioes asignados si ha habído cambios desde la última vez, si hay algún cambio, hace el backup completo, lo encripta y lo envía a un SFTP

Si no hay cambios, envía al SFTP un archivo SINCAMBIOS vacío.

#!/bin/bash
 
#
#       FUNCIONES
#
 
function calcula_checksum() {
# calcula el SHA1 de los ficheros contenidos en el directorio pasado por parámetroe
 
        TMP=$(find "$DIR_ORIGEN/$1" -type f -print0 | xargs -0 sha1sum | sort | cut -d " " -f 1 | sha1sum)
        CHEKSUM_ACT=$(echo $TMP | cut -d " " -f1)
        unset TMP
}
 
 
#
#       VARIABLES
#
 
FICHERO="diezminutos_com"
DIR_ORIGEN="/home/diezminutos"
CHEKSUM_ACT=""
CAMBIOS="NO"
 
FECHA=`eval date +%y%m%d`
 
 
# calcula SHA1 directorios
declare -a DIRECTORIOS=("app.10minutos" "appb.10minutos" "public" "beta" "system")
 
for directorio in "${DIRECTORIOS[@]}"; do
 
        ## leer checksum anterior, si existe
        CHEKSUM_ANT=""
        if [ -e "$DIR_ORIGEN/$directorio.checksum" ]; then
                CHEKSUM_ANT=$(cat "$DIR_ORIGEN/$directorio.checksum")
        fi  
 
        calcula_checksum $directorio
 
 
        if [ "$CHEKSUM_ANT" != "$CHEKSUM_ACT" ]; then
                CAMBIOS="SI"
                echo -e "$CHEKSUM_ACT" > $DIR_ORIGEN/$directorio.checksum
        fi  
 
done
 
 
if [ "$CAMBIOS" == "SI" ]; then
        # compresi�~C
        tar zvcpf ~/$FICHERO.tar.gz ~/app.10minutos ~/appb.10minutos ~/public ~/beta ~/system ~/*.sh 
 
 
        # CRC32
        crc32 $FICHERO.tar.gz > $FECHA.crc
        CRC=`cat $FECHA.crc`
        touch $FECHA-$FICHERO.$CRC
 
        #encriptaci�~C
        gpg --trust-model always -r "Miguel Angel Torres Egea (backups)" --encrypt ~/$FICHERO.tar.gz
 
        # borrado fichero original
        rm -f ~/$FICHERO.tar.gz
        rm -f $FECHA.crc
 
        # renombrado
        mv $FICHERO.tar.gz.gpg $FECHA-$FICHERO.tar.gz.gpg
 
        # copia
        scp -i ~/.ssh/backups\@seedbox.torresegea.es $FECHA-$FICHERO.* backups@seedbox.torresegea.es:~/10minutosaldia.com
 
        # borrado fichero encriptado
        rm -f $FECHA-$FICHERO.tar.gz.gpg
        rm -f $FECHA-$FICHERO.$CRC
 
else
        touch $DIR_ORIGEN/$FECHA-SINCAMBIOS.TXT
        scp -i ~/.ssh/backups\@seedbox.torresegea.es $FECHA-SINCAMBIOS.* backups@seedbox.torresegea.es:~/10minutosaldia.com
        rm -f $FECHA-SINCAMBIOS.TXT
 
fi
  • linux/scripts/10minutos.1476137326.txt.gz
  • Darrera modificació: 10/10/2016 15:08
  • per mate