57 lines
1.8 KiB
Bash
Executable File
57 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Source the .env file
|
|
source <(sed 's/#.*//g' ./.env)
|
|
|
|
# Set up variables from environment variables
|
|
MARIADB_HOST=${MARIADB_HOST:-"localhost"}
|
|
MARIADB_USER=${MARIADB_USER:-"root"}
|
|
MARIADB_PASSWORD=${MARIADB_PASSWORD:-"passwd"}
|
|
MARIADB_DATABASE=${MARIADB_DATABASE:-"DBName"}
|
|
SQLITE_DATABASE=${SQLITE_DATABASE:-"/Path/to/database"}
|
|
SFTP_HOST=${SFTP_HOST:-"localhost"}
|
|
SFTP_PATH=${SFTP_PATH:-"/Paht/to/sftp"}
|
|
TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN:-"TOKEN"}
|
|
TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID:-"ID_CHAT"}
|
|
|
|
# Generate backups
|
|
start_time=$(date +%s)
|
|
mariadb_backup_filename="globalists_mariadb_backup_$(date +%Y%m%d).sql.gz"
|
|
mariadb-dump -h "$MARIADB_HOST" -u "$MARIADB_USER" -p"$MARIADB_PASSWORD" "$MARIADB_DATABASE" | gzip > "$mariadb_backup_filename"
|
|
sqlite_backup_filename="globalists_sqlite_backup_$(date +%Y%m%d).sql.gz"
|
|
sqlite3 "$SQLITE_DATABASE" .dump | gzip > "$sqlite_backup_filename"
|
|
|
|
# Calculate SHA512 hash of backups
|
|
mariadb_hash=$(sha512sum "$mariadb_backup_filename" | awk '{ print $1 }')
|
|
sqlite_hash=$(sha512sum "$sqlite_backup_filename" | awk '{ print $1 }')
|
|
|
|
# Transfer backups to SFTP server
|
|
sftp "$SFTP_HOST"<< EOF > /dev/null
|
|
cd "$SFTP_PATH"
|
|
put "$mariadb_backup_filename"
|
|
put "$sqlite_backup_filename"
|
|
quit
|
|
EOF
|
|
|
|
# Delete local backup files
|
|
rm "$mariadb_backup_filename"
|
|
rm "$sqlite_backup_filename"
|
|
|
|
# Send message via Telegram
|
|
message="
|
|
** Respaldo completado! **
|
|
|
|
** Base de datos:**
|
|
|
|
* MariaDB: **$(echo $mariadb_backup_filename hash: $mariadb_hash)**
|
|
|
|
* SQLite: **$(echo $sqlite_backup_filename hash: $sqlite_hash)**
|
|
|
|
**⏱️ Tiempo de transferencia:** $(date -u -d "@$(( $(date +%s) - start_time ))" +'%T')
|
|
|
|
** Disponible en SFTP:** ($SFTP_PATH)
|
|
"
|
|
|
|
|
|
curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" -d chat_id="$TELEGRAM_CHAT_ID" -d text="$message" > /dev/null
|