Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created July 1, 2019 22:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/9b3fd49d43ad8275b5e9cb7346d042e3 to your computer and use it in GitHub Desktop.
Save parzibyte/9b3fd49d43ad8275b5e9cb7346d042e3 to your computer and use it in GitHub Desktop.
#!/bin/bash
# Script para respaldar instalación y base
# de datos de WordPress
# en Google Drive desde Linux
# By: parzibyte
# Visita: https://parzibyte.me/blog
# Variables de archivos
FECHA_Y_HORA=$(date "+%d-%m-%y_%H-%M-%S")
RUTA_HOME="/home/parzibyte"
# BD. No olvides que este archivo debe existir en la ruta especificada
# más info en: https://parzibyte.me/blog/2019/02/06/script-respaldar-base-de-datos-mysql-mariadb-linux-mysqldump/
ARCHIVO_CNF_MYSQL="$RUTA_HOME/my.cnf"
if [ ! -f "$ARCHIVO_CNF_MYSQL" ]; then
echo "No existe el archivo my.cnf en $ARCHIVO_CNF_MYSQL"
exit 1
fi
# Solo necesitamos el nombre de la base de datos de WordPress
BD_MYSQL="base_de_datos_wordpress"
# El ejecutable de gdrive. Más información
# en: https://parzibyte.me/blog/2019/07/01/administrar-google-drive-linux-gdrive-comandos/
EJECUTABLE_DRIVE="$RUTA_HOME/software/gdrive"
# El archivo de salida
NOMBRE_ARCHIVO="respaldo_wordpress_$FECHA_Y_HORA.tar.gz"
# El archivo de la base de datos
NOMBRE_DUMP_BD="$BD_MYSQL.$FECHA_Y_HORA.sql"
# Carpeta en donde serán guardados
CARPETA_DESTINO="$RUTA_HOME/respaldos"
# Simples concatenaciones
RUTA_ABSOLUTA_ARCHIVO="$CARPETA_DESTINO/$NOMBRE_ARCHIVO"
RUTA_ABSOLUTA_RESPALDO_BD="$CARPETA_DESTINO/$NOMBRE_DUMP_BD"
# Ubicación de la instalación de WordPress
CARPETA_RESPALDAR="/var/www/html/"
# Comandos
echo "Respaldando $BD_MYSQL en $RUTA_ABSOLUTA_RESPALDO_BD usando archivo $ARCHIVO_CNF_MYSQL..."
# Exportar base de datos con MySQLDump
mysqldump --defaults-file=$ARCHIVO_CNF_MYSQL $BD_MYSQL >$RUTA_ABSOLUTA_RESPALDO_BD
if [ ! -f "$RUTA_ABSOLUTA_RESPALDO_BD" ]; then
echo "No existe el respaldo"
exit 1
fi
# Creamos el directorio para los respaldos por si no existe
mkdir -p "$CARPETA_DESTINO"
echo "Creando archivo de respaldo..."
# Crear archivo tar.gz de instalación de WP
tar --ignore-failed-read --create --gzip --file="$RUTA_ABSOLUTA_ARCHIVO" "$CARPETA_RESPALDAR" "$RUTA_ABSOLUTA_RESPALDO_BD"
if [ -f "$RUTA_ABSOLUTA_ARCHIVO" ]; then
echo "Subiendo archivo usando binario de $EJECUTABLE_DRIVE"
# Subir archivo
$EJECUTABLE_DRIVE upload $RUTA_ABSOLUTA_ARCHIVO
echo "Eliminando archivos después de ser subidos"
# Eliminar tar.gz y respaldo de base de datos
rm $RUTA_ABSOLUTA_ARCHIVO
rm $RUTA_ABSOLUTA_RESPALDO_BD
# Mensaje para sentirnos como juanquers
echo "¡OK!"
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment