Šis dokuments apraksta, kā uzstādīt automātiskus servera veselības paziņojumus Discord. Katru rītu plkst. 6:00 Discord saņemsi ziņojumu ar servera statusu.
📦 Nepieciešamās atkarības
sudo apt update
sudo apt install curl lm-sensors -y
Pēc lm-sensors instalēšanas jāatrod temperatūras sensori:
sudo sensors-detect --auto
Ielādē sensora draiveri uzreiz:
sudo modprobe coretemp
Pievieno, lai ielādētos automātiski pēc pārstartēšanas:
echo "coretemp" | sudo tee -a /etc/modules
Pārbaudi sensoru izvadi:
sensors
⚠️ Atkarībā no procesora sensora nosaukums var atšķirties. Intel Atom gadījumā tas ir
Core 0, nevisPackage id 0. Pielāgo skriptu atbilstoši sava datora izvadei.
🔗 Discord Webhook izveidošana
- Atver Discord serveri
- Izvēlies kanālu → Rediģēt kanālu → Integrācijas → Webhooks
- Noklikšķini Jauns Webhook
- Nokopē Webhook URL — tas izskatās šādi:
https://discord.com/api/webhooks/XXXXXXXXXX/XXXXXXXXXXXXXXXX
📝 Skripta izveide
Izveido failu:
sudo nano /usr/local/bin/health_check.sh
Ielīmē šo saturu (aizstāj YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN ar savu webhook URL):
#!/bin/bash
WEBHOOK_URL="https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN"
# Savāc sistēmas datus
HOSTNAME=$(hostname)
UPTIME=$(uptime -p)
LOAD=$(uptime | awk '{print $(NF-2)}' | tr -d ',')
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}' | awk '{printf "%.0f", $1}')
RAM_TOTAL=$(free -m | awk '/Mem:/ {print $2}')
RAM_USED=$(free -m | awk '/Mem:/ {print $3}')
RAM_PERC=$((RAM_USED * 100 / RAM_TOTAL))
DISK_USAGE=$(df -h / | tail -1 | awk '{print $5}' | tr -d '%')
TEMP=$(sensors 2>/dev/null | grep -oP 'Core 0:\s+\+\K[0-9.]+' || echo "N/A")
# Pievieno brīdinājuma ikonas, ja vērtības pārsniedz normu
[ "$CPU_USAGE" -gt 85 ] && CPU_WARN="⚠️" || CPU_WARN="✅"
[ "$RAM_PERC" -gt 85 ] && RAM_WARN="⚠️" || RAM_WARN="✅"
[ "$DISK_USAGE" -gt 85 ] && DISK_WARN="⚠️" || DISK_WARN="✅"
# Sagatavo ziņojumu
MESSAGE="**System Status: $HOSTNAME**
🕒 Uptime: $UPTIME
⚡ Load Average: $LOAD _(normal: below 1.0 per CPU core)_
🔥 CPU: ${CPU_USAGE}% $CPU_WARN _(normal: < 85%)_
💾 RAM: ${RAM_USED}/${RAM_TOTAL} MB (${RAM_PERC}%) $RAM_WARN _(normal: < 85%)_
💿 Disk /: ${DISK_USAGE}% $DISK_WARN _(normal: < 85%)_
🌡️ CPU Temp: ${TEMP}°C _(normal: < 70°C)_"
# Ekranē JSON speciālās rakstzīmes
ESCAPED_MESSAGE=$(echo "$MESSAGE" | sed 's/\\/\\\\/g; s/"/\\"/g' | awk '{printf "%s\\n", $0}' | sed '$ s/\\n$//')
# Nosūta uz Discord
curl -s -o /dev/null -w "%{http_code}" \
-H "Content-Type: application/json" \
-d "{\"content\": \"$ESCAPED_MESSAGE\", \"username\": \"DietPi Health\"}" \
"$WEBHOOK_URL"
Saglabā: Ctrl+O → Enter → Ctrl+X
⚙️ Skripta palaišanas tiesības
sudo chmod +x /usr/local/bin/health_check.sh
chmod +x — piešķir failam izpildes tiesības. Bez tā Linux neļaus skriptu palaist.
🧪 Testēšana
bash /usr/local/bin/health_check.sh
Jāatgriežas 204 — tas nozīmē, ka Discord pieņēma ziņojumu. Pārbaudi Discord kanālu.
⏰ Automātiska palaišana ar Cron
Cron ir Linux uzdevumu plānotājs — kā “modinātājs” komandām.
sudo crontab -e
Pievieno šo rindu faila beigās:
0 6 * * * /usr/local/bin/health_check.sh
Skaidrojums: 0 6 * * * — katru dienu plkst. 6:00.
Pārbaudi, vai uzdevums pievienots:
sudo crontab -l
🧹 Ja kaut kas nogāja greizi — kā notīrīt
Ja instalēja ko lieku (piemēram, netdata vai python3):
sudo apt purge <pakotnes-nosaukums> -y
sudo apt autoremove -y
sudo apt clean
✅ Gala rezultāts
Katru rītu plkst. 6:00 Discord saņemsi šādu ziņojumu:
System Status: DietPiMusic
🕒 Uptime: up 2 days
⚡ Load Average: 0.4 (normal: below 1.0 per CPU core)
🔥 CPU: 23% ✅ (normal: < 85%)
💾 RAM: 512/2048 MB (25%) ✅ (normal: < 85%)
💿 Disk /: 45% ✅ (normal: < 85%)
🌡️ CPU Temp: 52.0°C (normal: < 70°C)
Ja kāda vērtība pārsniegs 85% — ikona mainīsies no ✅ uz ⚠️.