fix : code review

This commit is contained in:
AkiNoKure
2026-03-10 15:54:22 +01:00
parent 29eff11b23
commit f72328e0ce
8 changed files with 356 additions and 107 deletions

View File

@@ -16,7 +16,7 @@ PGHOST=localhost
PGPORT=5432
# Utilisateur utilisé pour les dumps
PGUSER=backup_user
PGUSER=nom_de_user
# Mot de passe PostgreSQL
PGPASSWORD=change_me_secure_password
@@ -29,20 +29,20 @@ DBS="sirh inventory ferme"
#############################################
# Utilisateur du serveur distant
BACKUP_REMOTE_USER=backup
BACKUP_REMOTE_USER=nom_de_user
# Host ou IP du serveur distant
BACKUP_REMOTE_HOST=192.168.1.50
# Dossier distant pour stocker les backups
BACKUP_REMOTE_DIR=/home/backup/backups
BACKUP_REMOTE_DIR=/home/nom_de_user/backups/bdd-recette
#############################################
# SSH
#############################################
# Clé SSH utilisée pour envoyer les dumps
SSH_KEY=/home/backup/.ssh/id_ed25519_backup
SSH_KEY=/home/nom_de_user/.ssh/id_ed25519_backup
# Timeout SSH (secondes)
SSH_TIMEOUT=10

View File

@@ -10,14 +10,15 @@ set -euo pipefail
#
# Fonctionnement global :
# 1. charge la configuration depuis le fichier .env ;
# 2. prépare les chemins, logs et variables de connexion ;
# 3. empêche lexécution simultanée grâce à un verrou ;
# 4. crée les dossiers de destination sur la machine distante ;
# 5. exporte les rôles PostgreSQL ;
# 6. dump chaque base au format personnalisé PostgreSQL ;
# 7. transfère chaque fichier vers le serveur distant ;
# 8. applique une rotation distante sur 10 jours ;
# 9. envoie un bilan sur Discord :
# 2. vérifie les dépendances nécessaires ;
# 3. prépare les chemins, logs et variables de connexion ;
# 4. empêche lexécution simultanée grâce à un verrou ;
# 5. crée les dossiers de destination sur la machine distante ;
# 6. exporte les rôles PostgreSQL ;
# 7. dump chaque base au format personnalisé PostgreSQL ;
# 8. transfère chaque fichier vers le serveur distant ;
# 9. applique une rotation distante sur 10 jours ;
# 10. envoie un bilan sur Discord :
# - 1 message global si tout est OK ;
# - en cas derreur partielle :
# * USERS OK -> message simple ;
@@ -102,10 +103,17 @@ DISCORD_PING="${DISCORD_PING:-@here}"
discord_send() {
local msg="$1"
[[ -z "${DISCORD_WEBHOOK_URL:-}" ]] && return
[[ -z "${DISCORD_WEBHOOK_URL:-}" ]] && return 0
curl -fsS -H "Content-Type: application/json" \
-d "{\"content\":\"$msg\"}" \
local payload
payload="$(jq -n --arg content "$msg" '{content: $content}')" || {
log "ERROR: impossible de construire le payload JSON Discord"
return 1
}
curl -fsS \
-H "Content-Type: application/json" \
-d "$payload" \
"$DISCORD_WEBHOOK_URL" >/dev/null || true
}

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env bash
set -u
set -uo pipefail
###############################################################################
# check-statut-recette.sh
@@ -89,8 +89,11 @@ discord_ping() {
msg+="Application: ${site}\n"
msg+="Details: ${detail}"
local payload
payload="$(jq -n --arg content "$msg" '{content: $content}')"
curl -fsS -H "Content-Type: application/json" \
-d "{\"content\":\"$msg\"}" \
-d "$payload" \
"$DISCORD_WEBHOOK_URL" >/dev/null || true
}
@@ -99,11 +102,9 @@ discord_ping() {
#######################################
log_line() {
# 2026-03-04 14:12:33 | LEVEL | site | message
printf "%s | %s | %s | %s\n" \
"$(date +'%Y-%m-%d %H:%M:%S')" "$1" "$2" "$3" | tee -a "$LOG_FILE"
# Envoi Discord par application
discord_ping "$2" "$1" "$3"
}