45 lines
1.3 KiB
Bash
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
|
|
}
|