Ajouter check_and_alert_temp.sh
This commit is contained in:
66
check_and_alert_temp.sh
Normal file
66
check_and_alert_temp.sh
Normal 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
|
||||||
Reference in New Issue
Block a user