32 lines
1.4 KiB
Text
32 lines
1.4 KiB
Text
|
|
#!/bin/bash
|
||
|
|
# GENERE par Set-OPS (role serveur_artefacts). Ne pas editer a la main.
|
||
|
|
#
|
||
|
|
# SONDE « cache-apt-volume » — reste-t-il de la place au cache ?
|
||
|
|
#
|
||
|
|
# Contrat : docs/supervision-conception.md (API des greffons Nagios) — une ligne, 0/1/2.
|
||
|
|
# Mise en defaut PAR PARAMETRE : `serveur_artefacts_sonde_pct_avert` / `_pct_crit`.
|
||
|
|
#
|
||
|
|
# SEPAREE DE LA DISPONIBILITE (2026-09-10) : ce verdict-ci appelle un billet, pas un
|
||
|
|
# reveil. Un cache plein ne se plaint pas — il cesse simplement de servir ce qu'il n'a pas
|
||
|
|
# pu ecrire, et l'echec apparait chez les CLIENTS, loin d'ici. D'ou des seuils qui
|
||
|
|
# previennent au lieu de constater.
|
||
|
|
set -uo pipefail
|
||
|
|
|
||
|
|
REP={{ serveur_artefacts_sonde_repertoire }}
|
||
|
|
AVERT={{ serveur_artefacts_sonde_pct_avert }}
|
||
|
|
CRIT={{ serveur_artefacts_sonde_pct_crit }}
|
||
|
|
|
||
|
|
pct=$(df --output=pcent "${REP}" 2>/dev/null | tail -1 | tr -dc '0-9')
|
||
|
|
[[ -n "${pct}" ]] || { echo "Volume du cache illisible (${REP})."; exit 2; }
|
||
|
|
taille=$(du -sh "${REP}" 2>/dev/null | cut -f1)
|
||
|
|
|
||
|
|
if (( pct >= CRIT )); then
|
||
|
|
echo "Volume du cache a ${pct}% (${taille}) — il va cesser d'ecrire, et l'echec se verra chez les clients.|pct=${pct}%;${AVERT};${CRIT};0;100"
|
||
|
|
exit 2
|
||
|
|
fi
|
||
|
|
if (( pct >= AVERT )); then
|
||
|
|
echo "Volume du cache a ${pct}% (${taille}), seuil ${AVERT}%.|pct=${pct}%;${AVERT};${CRIT};0;100"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
echo "Volume du cache : ${taille} sur un volume a ${pct}%.|pct=${pct}%;${AVERT};${CRIT};0;100"
|