#!/bin/bash # # FUNCIONES # function calcula_checksum() { # calcula el SHA1 de los ficheros contenidos en el directorio pasado por parámetro 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" DBB_HOST="mysql.10minutosaldia.com" DBB_USER="mate_backup" DBB_PASSWORD="ot3trecfe4y5fxx722xekngf" BACKUP_PATH="${DIR_ORIGEN}/backup" ENCHIVE_PATH="${BACKUP_PATH}/enchive" ENCHIVE_PUBKEY="mate_es.pub" FECHA=`eval date +%y%m%d` DIRECTORIOS_TAR="" # backup BBDD declare -a BBDD=("10minutos" "10minutosbeta") for BDD in "${BBDD[@]}"; do /usr/bin/mysqldump --opt --user=${DBB_USER} --password=${DBB_PASSWORD} --host=${DBB_HOST} ${BDD} > ${DIR_ORIGEN}/mysqldump/${BDD}.sql ${ENCHIVE_PATH} --pub-key=${BACKUP_PATH}/${ENCHIVE_PUBKEY} archive ${DIR_ORIGEN}/mysqldump/${BDD}.sql rm ${DIR_ORIGEN}/mysqldump/${BDD}.sql done # calcula SHA1 directorios declare -a DIRECTORIOS=("app.10minutos" "appb.10minutos" "public" "beta" "backup" "system-3.1.11" "mysqldump") for directorio in "${DIRECTORIOS[@]}"; do DIRECTORIOS_TAR="${DIRECTORIOS_TAR} ${directorio}" ## 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ón tar zvcpf $DIR_ORIGEN/$FICHERO.tar.gz --exclude-tag-all=.nobackup ${DIRECTORIOS_TAR} $DIR_ORIGEN/*.sh #encriptación ${ENCHIVE_PATH} --pub-key=${BACKUP_PATH}/${ENCHIVE_PUBKEY} archive ~/$FICHERO.tar.gz # borrado fichero original rm -f ~/$FICHERO.tar.gz # renombrado mv $FICHERO.tar.gz.enchive $FECHA-$FICHERO.tar.gz.enchive else touch $DIR_ORIGEN/$FECHA-SINCAMBIOS.TXT fi