Merge pull request 'feat/384-correctif' (#8) from feat/384-correctif into develop
Reviewed-on: MALIO-DEV/Scripts-Serveur#8
This commit was merged in pull request #8.
This commit is contained in:
@@ -12,7 +12,6 @@ DATA_DIR=
|
|||||||
# Dossier local où seront stockées les archives
|
# Dossier local où seront stockées les archives
|
||||||
LOCAL_BACKUP=
|
LOCAL_BACKUP=
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
# SERVEUR DE BACKUP DISTANT
|
# SERVEUR DE BACKUP DISTANT
|
||||||
#############################################
|
#############################################
|
||||||
@@ -26,7 +25,6 @@ REMOTE_HOST=
|
|||||||
# Répertoire distant de stockage des backups
|
# Répertoire distant de stockage des backups
|
||||||
REMOTE_DIR=
|
REMOTE_DIR=
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
# AUTHENTIFICATION SSH
|
# AUTHENTIFICATION SSH
|
||||||
#############################################
|
#############################################
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# FONCTIONNEMENT DU SCRIPT VAULTWARDEN
|
# FONCTIONNEMENT DU SCRIPT VAULTWARDEN
|
||||||
Le script de backup de vaultwarden permet une sauvegard périodique des mots de passe et utilisateurs de celui-ci.
|
Le script de backup de vaultwarden permet une sauvegarde périodique des mots de passe et utilisateurs de celui-ci.
|
||||||
|
|
||||||
## INITIALISATION DES VARIABLES DE MANIÈRE SÉCURISÉ
|
## INITIALISATION DES VARIABLES DE MANIÈRE SÉCURISÉ
|
||||||
|
|
||||||
@@ -13,7 +13,7 @@ SSH_KEY=...
|
|||||||
DATA_DIR=...
|
DATA_DIR=...
|
||||||
```
|
```
|
||||||
|
|
||||||
2. on recupere les varibales dans le script
|
2. on récupère les variables dans le script
|
||||||
```bash
|
```bash
|
||||||
REMOTE_USER=$(grep -E '^REMOTE_USER=' .env | cut -d '=' -f2-)
|
REMOTE_USER=$(grep -E '^REMOTE_USER=' .env | cut -d '=' -f2-)
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -1,28 +1,5 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
###############################################################################
|
|
||||||
# backup-vaultwarden.sh
|
|
||||||
#
|
|
||||||
# Ce script réalise une sauvegarde complète des données Vaultwarden
|
|
||||||
# en compressant le répertoire contenant les données, puis transfère
|
|
||||||
# l’archive vers un serveur distant de stockage via SSH.
|
|
||||||
#
|
|
||||||
# Fonctionnement global :
|
|
||||||
# 1. charge la configuration depuis le fichier .env ;
|
|
||||||
# 2. initialise les chemins du script et le fichier de log ;
|
|
||||||
# 3. vérifie la présence des variables obligatoires dans le .env ;
|
|
||||||
# 4. vérifie l’existence du dossier de données Vaultwarden ;
|
|
||||||
# 5. crée une archive compressée (.tar.gz) du dossier DATA_DIR ;
|
|
||||||
# 6. crée le dossier de destination sur le serveur distant ;
|
|
||||||
# 7. transfère l’archive vers le serveur distant via SCP ;
|
|
||||||
# 8. supprime l’archive locale après transfert ;
|
|
||||||
# 9. enregistre les opérations dans un fichier log ;
|
|
||||||
# 10. envoie une notification Discord indiquant le succès ou l’échec.
|
|
||||||
#
|
|
||||||
# Le script est conçu pour être exécuté automatiquement via cron
|
|
||||||
# et permet de conserver une copie distante des données Vaultwarden
|
|
||||||
# afin de garantir leur récupération en cas de perte locale.
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Chemins fixes du script
|
# Chemins fixes du script
|
||||||
|
|||||||
@@ -1,28 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
###############################################################################
|
|
||||||
# disk-usage-check.sh
|
|
||||||
#
|
|
||||||
# Ce script vérifie l'utilisation du disque sur la partition racine "/".
|
|
||||||
# Si l'utilisation dépasse un seuil défini, une alerte est envoyée sur Discord
|
|
||||||
# via un webhook.
|
|
||||||
#
|
|
||||||
# Fonctionnement :
|
|
||||||
# 1. Définit une limite maximale d'utilisation du disque (limit).
|
|
||||||
# 2. Récupère l'URL du webhook Discord depuis le fichier .env.
|
|
||||||
# 3. Récupère les informations disque avec la commande df :
|
|
||||||
# - espace total
|
|
||||||
# - espace utilisé
|
|
||||||
# - espace disponible
|
|
||||||
# - pourcentage d'utilisation
|
|
||||||
# 4. Convertit les valeurs bytes en gigaoctets pour un affichage lisible.
|
|
||||||
# 5. Si l'utilisation dépasse la limite définie :
|
|
||||||
# - envoie un message d'alerte sur Discord.
|
|
||||||
# 6. Affiche dans la console les informations de stockage.
|
|
||||||
#
|
|
||||||
# Ce script est généralement exécuté via cron pour surveiller
|
|
||||||
# automatiquement l'espace disque d'un serveur.
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# CONFIGURATION
|
# CONFIGURATION
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -31,16 +7,13 @@
|
|||||||
limit=70
|
limit=70
|
||||||
|
|
||||||
# Récupération du webhook Discord depuis le fichier .env
|
# Récupération du webhook Discord depuis le fichier .env
|
||||||
# Le script cherche la ligne WEBHOOK_URL= et extrait la valeur
|
|
||||||
WEBHOOK_URL=$(grep -E '^WEBHOOK_URL=' .env | cut -d '=' -f2-)
|
WEBHOOK_URL=$(grep -E '^WEBHOOK_URL=' .env | cut -d '=' -f2-)
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# RÉCUPÉRATION DES INFORMATIONS DISQUE
|
# RÉCUPÉRATION DES INFORMATIONS DISQUE
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
# La commande df -B1 renvoie les informations disque en bytes
|
# extraction des informations
|
||||||
# awk récupère la ligne correspondant à la partition "/"
|
|
||||||
# puis extrait les informations
|
|
||||||
read -r total_bytes used_bytes avail_bytes usage <<<"$(df -B1 / | awk 'NR==2 {gsub(/%/,"",$5); print $2, $3, $4, $5}')"
|
read -r total_bytes used_bytes avail_bytes usage <<<"$(df -B1 / | awk 'NR==2 {gsub(/%/,"",$5); print $2, $3, $4, $5}')"
|
||||||
|
|
||||||
# Calcul du pourcentage d'espace libre
|
# Calcul du pourcentage d'espace libre
|
||||||
@@ -60,8 +33,7 @@ avail_gb=$(awk -v b="$avail_bytes" 'BEGIN {printf "%.2f", b/1024/1024/1024}')
|
|||||||
# VÉRIFICATION DU SEUIL D'UTILISATION
|
# VÉRIFICATION DU SEUIL D'UTILISATION
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
# Si l'utilisation dépasse la limite définie,
|
# Si l'utilisation dépasse la limite définie, une alerte est envoyée sur Discord
|
||||||
# une alerte est envoyée sur Discord
|
|
||||||
if [ "$usage" -ge "$limit" ]; then
|
if [ "$usage" -ge "$limit" ]; then
|
||||||
|
|
||||||
msgLimit="@here\n**CHECK STOCKAGE :red_circle:**\nLimite autorisé : ${limit}%\nUtilisation actuelle: ${usage}%\nEspace restant: ${free}%\nUtilise / total: ${used_gb} GB / ${total_gb} GB\nDisponible: ${avail_gb} GB\nHeure: $(date)"
|
msgLimit="@here\n**CHECK STOCKAGE :red_circle:**\nLimite autorisé : ${limit}%\nUtilisation actuelle: ${usage}%\nEspace restant: ${free}%\nUtilise / total: ${used_gb} GB / ${total_gb} GB\nDisponible: ${avail_gb} GB\nHeure: $(date)"
|
||||||
@@ -74,8 +46,7 @@ if [ "$usage" -ge "$limit" ]; then
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
##############################################################
|
###############################################################################
|
||||||
# ################
|
|
||||||
# AFFICHAGE DES INFORMATIONS STOCKAGE
|
# AFFICHAGE DES INFORMATIONS STOCKAGE
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
# Nom de l'environnement (ex: DEV / RECETTE / PROD)
|
# Nom de l'environnement (ex: DEV / RECETTE / PROD)
|
||||||
ENV_NAME=RECETTE
|
ENV_NAME=RECETTE
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
# POSTGRESQL
|
# POSTGRESQL
|
||||||
#############################################
|
#############################################
|
||||||
@@ -25,7 +24,6 @@ PGPASSWORD=change_me_secure_password
|
|||||||
# Bases à sauvegarder (séparées par espace)
|
# Bases à sauvegarder (séparées par espace)
|
||||||
DBS="sirh inventory ferme"
|
DBS="sirh inventory ferme"
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
# SERVEUR DE STOCKAGE DES BACKUPS
|
# SERVEUR DE STOCKAGE DES BACKUPS
|
||||||
#############################################
|
#############################################
|
||||||
@@ -39,7 +37,6 @@ BACKUP_REMOTE_HOST=192.168.1.50
|
|||||||
# Dossier distant pour stocker les backups
|
# Dossier distant pour stocker les backups
|
||||||
BACKUP_REMOTE_DIR=/home/backup/backups
|
BACKUP_REMOTE_DIR=/home/backup/backups
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
# SSH
|
# SSH
|
||||||
#############################################
|
#############################################
|
||||||
@@ -50,7 +47,6 @@ SSH_KEY=/home/backup/.ssh/id_ed25519_backup
|
|||||||
# Timeout SSH (secondes)
|
# Timeout SSH (secondes)
|
||||||
SSH_TIMEOUT=10
|
SSH_TIMEOUT=10
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
# LOGS
|
# LOGS
|
||||||
#############################################
|
#############################################
|
||||||
@@ -61,7 +57,6 @@ BACKUP_LOG_DIR=/var/log/pg_backup
|
|||||||
# Dossier logs monitoring apps
|
# Dossier logs monitoring apps
|
||||||
APP_LOG_DIR=/var/log/app_health
|
APP_LOG_DIR=/var/log/app_health
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
# DISCORD
|
# DISCORD
|
||||||
#############################################
|
#############################################
|
||||||
@@ -72,7 +67,6 @@ DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/xxxxxxxxxxxxxxxx/xxxxxxxxxx
|
|||||||
# Ping en cas d'erreur
|
# Ping en cas d'erreur
|
||||||
DISCORD_PING=@here
|
DISCORD_PING=@here
|
||||||
|
|
||||||
|
|
||||||
#############################################
|
#############################################
|
||||||
# HEALTH CHECK APPS
|
# HEALTH CHECK APPS
|
||||||
#############################################
|
#############################################
|
||||||
|
|||||||
Reference in New Issue
Block a user