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