Maak een Bash- of PowerShell-script voor geplande servergezondheidscontroles
description
Door dit script te implementeren, kunnen gebruikers proactief de gezondheid van hun server onderhouden, downtime minimaliseren en snel eventuele problemen aanpakken, wat leidt tot verbeterde systeembetrouwbaarheid en prestaties.
prompt
try_prompt
Help me een Bash- of PowerShell-script ontwerpen dat geplande gezondheidscontroles op mijn server uitvoert. Geef alstublieft de controlecriteria op om te controleren: {{audit_criteria}}. Wat i ... more
generate_helper
...
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hieronder vind je een voorbeeld van een Bash-script dat dagelijks CPU-belasting controleert en een e-mail stuurt bij kritieke bevindingen. Dit script kan je in een cron-job plannen voor dagelijkse uitvoering.
**Bash-script voor dagelijkse CPU-belasting controle**
```bash
#!/bin/bash
# Threshold voor CPU-belasting (bijvoorbeeld 1.0 betekent 100% op één core)
CPU_THRESHOLD=1.0
# Tijdstip van de berekening
CURRENT_LOAD=$(awk '{print $1}' /proc/loadavg)
# E-mail instellingen
EMAIL_ADRES="jouw@email.com"
SUBJECT="Kritieke CPU-belasting waarschuwing"
BODY="De CPU-belasting is kritiek hoog: $CURRENT_LOAD"
# Controle en melding
if (( $(echo "$CURRENT_LOAD > $CPU_THRESHOLD" | bc -l) )); then
echo "$BODY" | mail -s "$SUBJECT" "$EMAIL_ADRES"
fi
```
**Instructies:**
- Pas `CPU_THRESHOLD` aan op basis van jouw tolerantie. Bijvoorbeeld, 1.0 betekent dat de gemiddelde belasting hoger is dan 1.0, wat duidt op overbelasting.
- Vervang `jouw@email.com` door je eigen e-mailadres.
- Maak het script uitvoerbaar: `chmod +x cpu_check.sh`
- Plan het in cron voor dagelijkse uitvoering:
```bash
0 8 * * * /pad/naar/cpu_check.sh
```
---
**PowerShell-script voor Windows Server**
```powershell
# Threshold voor CPU-belasting
$CpuThreshold = 80 # Percentage
# Huidige CPU-belasting ophalen
$cpuUsage = Get-Counter '\Processor(_Total)\% Processor Time'
$currentLoad = $cpuUsage.CounterSamples.CookedValue
# E-mail instellingen
$smtpServer = "smtp.jouwprovider.com"
$from = "server@jouwdomein.com"
$to = "jouw@email.com"
$subject = "Kritieke CPU-belasting waarschuwing"
$body = "De CPU-belasting is hoog: $([math]::Round($currentLoad,2))%"
# Controle en e-mail
if ($currentLoad -gt $CpuThreshold) {
Send-MailMessage -From $from -To $to -Subject $subject -Body $body -SmtpServer $smtpServer
}
```
**Instructies:**
- Vervang `$smtpServer`, `$from`, en `$to` door je eigen gegevens.
- Plan het script via Taakplanner voor dagelijkse uitvoering.
---
Wil je dat ik ook help bij het opzetten van de planning of andere controles?
provider: deepseek
model: deepseek-chat
Hier is een Bash-script voor dagelijkse gezondheidscontroles van uw server met e-mailmeldingen:
```bash
#!/bin/bash
# Configuratie
CRITICAL_CPU_PERCENT=80
EMAIL_RECIPIENT="beheerder@uwdomein.nl"
LOG_FILE="/var/log/server_health.log"
# Functie voor e-mailmelding
send_alert() {
local subject="$1"
local message="$2"
echo "$(date): $message" >> "$LOG_FILE"
echo "$message" | mail -s "$subject" "$EMAIL_RECIPIENT"
}
# CPU-belasting controleren
check_cpu_usage() {
local cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1)
local cpu_usage_int=${cpu_usage%.*}
echo "$(date): CPU-gebruik: $cpu_usage%" >> "$LOG_FILE"
if [ "$cpu_usage_int" -ge "$CRITICAL_CPU_PERCENT" ]; then
send_alert "KRITIEK: Hoge CPU-belasting op server" "CPU-gebruik is $cpu_usage% (drempel: $CRITICAL_CPU_PERCENT%)"
fi
}
# Hoofdcontroles uitvoeren
echo "$(date): Start gezondheidscontrole server" >> "$LOG_FILE"
check_cpu_usage
echo "$(date): Gezondheidscontrole voltooid" >> "$LOG_FILE"
```
**Controlecriteria:**
- CPU-belasting: Waarschuwing bij >80% gebruik
- Logboekregistratie van alle controles
- E-mailmelding bij kritieke waarden
**Installatie en gebruik:**
1. Sla het script op als `server_health_check.sh`
2. Maak uitvoerbaar: `chmod +x server_health_check.sh`
3. Installeer e-mailclient: `sudo apt install mailutils` (Ubuntu/Debian)
4. Voeg toe aan crontab voor dagelijkse uitvoering:
```bash
0 2 * * * /pad/naar/server_health_check.sh
```
**Aanvullende controle-uitbreidingen (optioneel):**
```bash
# Geheugengebruik controleren
check_memory_usage() {
local memory_usage=$(free | grep Mem | awk '{printf "%.0f", $3/$2 * 100}')
echo "$(date): Geheugengebruik: $memory_usage%" >> "$LOG_FILE"
if [ "$memory_usage" -ge 90 ]; then
send_alert "WAARSCHUWING: Hoog geheugengebruik" "Geheugengebruik is $memory_usage%"
fi
}
# Schijfruimte controleren
check_disk_space() {
local disk_usage=$(df / | awk 'NR==2 {print $5}' | cut -d'%' -f1)
echo "$(date): Schijfruimte gebruik: $disk_usage%" >> "$LOG_FILE"
if [ "$disk_usage" -ge 90 ]; then
send_alert "KRITIEK: Weinig schijfruimte" "Schijfruimte gebruik is $disk_usage%"
fi
}
```
**Opmerking:** Pas de drempelwaarden en e-mailadres aan volgens uw specifieke vereisten. Test het script eerst handmatig vooor implementatie.

