script_bu_formha/formha_bu.sh

45 lines
1.3 KiB
Bash

#!/bin/bash
set -e
trap 'curl -d "🚨 [$d] Error en el proceso de backup formha (línea $LINENO)" ntfy.xala.dev/alerts' ERR
# 1.- Establecer fecha para el nombre del archivo
d=$(date +"%d.%m.%Y-%H.%M")
# 2.- Establecer directorio de respaldo
dir="/home/dix/backups-db"
mkdir -p "$dir"
{
curl -H "X-Ttl: 604800" -d "🤖 [$d] Inicia el proceso de backup formha" ntfy.xala.dev/alerts
# 3.- Borrar archivos antiguos
if [ -n "$(ls -A "$dir")" ]; then
rm -rfv "$dir"/*
fi
# 4.- Crear nuevo directorio de backup
n_folder_backup="$dir/formha_backup_$d"
mkdir -pv "$n_folder_backup"
# 5.- Copiar archivos de uploads
cp -rv "/var/www/formha/static/uploads/"* "$n_folder_backup"
# 6.- Crear backup de la base de datos
n_file_bu_sql="$n_folder_backup/db_formha_backup_$d.sql"
# export PGPASSWORD='tu_contraseña' # si no usas .pgpass
pg_dump -h 127.0.0.1 -U postgres -d formha -f "$n_file_bu_sql"
# gzip -v "$n_file_bu_sql"
# 7.- Enviar archivos a Google Drive
# rclone copy "$dir" formha_db_backups:/formha-db-backups
rclone copy "$dir" formha_db_backups:/formha-db-backups
# 9.- Eliminar archivos locales
rm -rfv "$dir"/*
curl -H "X-Ttl: 604800" -d "✅ [$d] Backup formha finalizado correctamente" ntfy.xala.dev/alerts
}