Ajouter check_and_alert_temp.sh

This commit is contained in:
2024-12-13 22:17:12 +01:00
parent 3c22c2aa00
commit af46d88db3

66
check_and_alert_temp.sh Normal file
View File

@@ -0,0 +1,66 @@
#!/bin/bash
# Configuration
WEBHOOK_URL="VOTRE-WEBHOOK"
TEMPERATURE_THRESHOLD=70 # Seuil de température en °C
CHECK_INTERVAL=60 # Intervalle de vérification en secondes
get_max_cpu_temperature() {
sensors -j 2>/dev/null | jq -r '.["coretemp-isa-0000"] | to_entries[] | select(.key | startswith("Core")) | .value | to_entries[] | select(.key | endswith("_input")) | .value' 2>/dev/null | sort -rn | head -n1
}
send_discord_alert() {
local temp=$1
local timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
local json_payload=$(cat <<EOF
{
"content": "@everyone",
"embeds": [{
"title": "⚠️ ALERTE DE SURCHAUFFE",
"color": 16711680,
"fields": [
{
"name": "Température CPU maximale",
"value": "${temp}°C",
"inline": true
},
{
"name": "Seuil de température",
"value": "${TEMPERATURE_THRESHOLD}°C",
"inline": true
}
],
"footer": {
"text": "Surveillance de température Proxmox"
},
"timestamp": "${timestamp}"
}]
}
EOF
)
curl -s -H "Content-Type: application/json" \
-d "${json_payload}" \
$WEBHOOK_URL
}
main() {
echo "Surveillance de la température CPU démarrée..."
echo "Une alerte sera envoyée si la température dépasse ${TEMPERATURE_THRESHOLD}°C."
while true; do
temp=$(get_max_cpu_temperature)
if [ -n "$temp" ] && [ "$temp" != "null" ] && [ "$temp" != "0" ]; then
if (( $(echo "$temp > $TEMPERATURE_THRESHOLD" | bc -l) )); then
echo "ALERTE : Température CPU maximale actuelle : ${temp}°C"
send_discord_alert $temp
else
echo "Température CPU maximale actuelle : ${temp}°C (Normal)"
fi
else
echo "Erreur : Impossible de lire la température CPU."
fi
sleep $CHECK_INTERVAL
done
}
main