Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
linux:scripts:backupgpg [24/10/2019 08:43] matelinux:scripts:backupgpg [22/03/2020 11:52] (actual) – [2.2] mate
Línia 1: Línia 1:
 = backup, encriptado y copia a remoto = backup, encriptado y copia a remoto
 +== 2.2
 +  * disociar parámetros de script en 2 ficheros
 +    * usar ''source'' para incluir las variables necesarias
 +    * o volver a mirar opciones de usar otro tipo de fichero (INI,JSON)
 +
 +== v2.1
 +  * sustitución **GPG** por **[[software:utils:enchive|ENCHIVE]]**
 +  * valorando cambio de cálculo de hash
 +    * sha1 -> md5 (la mitad de tiempo) : las colisiones no son importantes
 +    * meow hash (por valorar)
 +  * pte: cambiar el nombre del script!
 +
 +<code bash backup_fs_gpg.sh>
 +#!/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
 +
 +</code>
 == v2 == v2
   * instalar llave pública contraseña GPG para encriptado fichero TAR (mover entre servidores sin problema)   * instalar llave pública contraseña GPG para encriptado fichero TAR (mover entre servidores sin problema)
  • linux/scripts/backupgpg.1571931800.txt.gz
  • Darrera modificació: 24/10/2019 08:43
  • per mate