fix : changelog plus readme a jour

This commit is contained in:
2026-03-18 21:24:30 +01:00
parent fac2a5b47f
commit 7b91691ef8
23 changed files with 653 additions and 278 deletions

View File

@@ -4,3 +4,9 @@
# Webhook Discord pour notifications
DISCORD_WEBHOOK_URL=
# Mention Discord en cas d'alerte
DISCORD_PING=@here
# Seuil d'alerte en pourcentage d'utilisation
STORAGE_ALERT_LIMIT=70

View File

@@ -1,65 +1,51 @@
# Scripts de vérification de l'espace de stockage
# CheckStorage
Ce projet contient des scripts pour vérifier l'espace de stockage
Script de vérification de lespace disque sur Ubuntu Server, avec notification Discord optionnelle.
## Préambule
Ce script est conçu pour vérifier l'espace de stockage disponible sur un serveur et envoyer une alerte
La vérification de l'espace de stockage ce fait sur la partition racine.
La limite d'alerte est fixée à 70% d'utilisation, mais vous pouvez ajuster cette valeur dans le script selon vos besoins.
## Fonctionnement
## Installation du script
Le script :
1. Clonez le dépôt GitHub :
```bash
git clone https://gitea.malio.fr/MALIO-DEV/Scripts-Serveur.git
```
2. Accédez au répertoire du projet :
3. ```bash
cd Scripts-Serveur/CheckStorage
```
### Génération de la clé SSH
1. charge `.env`
2. lit lutilisation de la partition `/`
3. compare le taux doccupation au seuil configuré
4. envoie une alerte Discord si le seuil est dépassé
Sur la machine exécutant les scripts :
## Pré-requis
Installation recommandée sur Ubuntu Server :
```bash
ssh-keygen -t ed25519 -f ~/.ssh/check_storage_key
sudo apt update
sudo apt install -y coreutils gawk jq curl
```
Copier la clé sur le serveur distant :
`jq` et `curl` ne sont nécessaires que si `DISCORD_WEBHOOK_URL` est renseigné.
## Configuration
```bash
ssh-copy-id -i ~/.ssh/check_storage_key.pub user@serveur
cp .env.exemple .env
chmod 600 .env
```
Tester la connexion sans mot de passe :
Variables disponibles :
- `DISCORD_WEBHOOK_URL` : webhook Discord, optionnel
- `DISCORD_PING` : mention en cas dalerte, optionnel, défaut `@here`
- `STORAGE_ALERT_LIMIT` : seuil dalerte en pourcentage, défaut `70`
## Utilisation
```bash
ssh -i ~/.ssh/check_storage_key <USER>@<HOST>
chmod 700 check-storage.sh
./check-storage.sh
```
## Utilisation du script
0. Copiez le fichier d'environnement exemple et modifiez les variables selon votre configuration :
```bash
cp .env.example .env
nano .env
```
1. Donnez les permissions d'exécution au script :
```bash
chmod +x check-storage.sh
```
2. Exécutez le script pour vérifier l'espace de stockage :
```bash
./check-storage.sh
```
## Initialisé un cron pour exécuter le script régulièrement
1. Ouvrez le crontab pour l'édition :
```bash
crontab -e
```
2. Ajoutez la ligne suivante pour exécuter le script tous les jours à 7h50 du matin :
```bash
50 7 * * * /chemin/vers/le/script/check-storage.sh
```
## Avertissement
Assurez-vous de remplacer `/chemin/vers/le/script/check-storage.sh` par le chemin réel où se trouve le script sur votre système.
## Cron
Exemple quotidien à `07:50` :
```bash
50 7 * * * /chemin/vers/CheckStorage/check-storage.sh
```

View File

@@ -1,5 +1,6 @@
#!/bin/bash
#!/usr/bin/env bash
set -euo pipefail
umask 077
###############################################################################
# CHARGEMENT DU .env
@@ -22,8 +23,34 @@ set +a
# CONFIGURATION
###############################################################################
require_cmd() {
command -v "$1" >/dev/null 2>&1 || {
echo "ERROR: commande requise absente : $1" >&2
exit 1
}
}
# Limite maximale d'utilisation du disque en pourcentage
limit=70
limit="${STORAGE_ALERT_LIMIT:-70}"
DISCORD_PING="${DISCORD_PING:-@here}"
[[ "$limit" =~ ^[0-9]+$ ]] || {
echo "ERROR: STORAGE_ALERT_LIMIT invalide" >&2
exit 1
}
(( limit >= 1 && limit <= 99 )) || {
echo "ERROR: STORAGE_ALERT_LIMIT doit être compris entre 1 et 99" >&2
exit 1
}
require_cmd df
require_cmd awk
if [[ -n "${DISCORD_WEBHOOK_URL:-}" ]]; then
require_cmd jq
require_cmd curl
fi
###############################################################################
# RÉCUPÉRATION DES INFORMATIONS DISQUE
@@ -48,15 +75,17 @@ avail_gb=$(awk -v b="$avail_bytes" 'BEGIN {printf "%.2f", b/1024/1024/1024}')
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="${DISCORD_PING}\n**CHECK STOCKAGE :red_circle:**\nLimite autorisée : ${limit}%\nUtilisation actuelle : ${usage}%\nEspace restant : ${free}%\nUtilisé / total : ${used_gb} GB / ${total_gb} GB\nDisponible : ${avail_gb} GB\nHeure : $(date)"
payload="$(jq -n --arg content "$msgLimit" '{content: $content}')"
if [[ -n "${DISCORD_WEBHOOK_URL:-}" ]]; then
payload="$(jq -n --arg content "$msgLimit" '{content: $content}')"
curl -X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json; charset=utf-8" \
-d "$payload" \
"$DISCORD_WEBHOOK_URL"
curl -fsS \
-H "Accept: application/json" \
-H "Content-Type: application/json; charset=utf-8" \
-d "$payload" \
"$DISCORD_WEBHOOK_URL" >/dev/null || true
fi
fi