49 lines
1.5 KiB
Bash
Executable File
49 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# Setup Cronjob für Wetterserver-Monitoring (alle 5 Minuten)
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PYTHON_SCRIPT="$SCRIPT_DIR/check_wetterserver.py"
|
|
VENV_PYTHON="$SCRIPT_DIR/.venv/bin/python"
|
|
|
|
if [[ ! -f "$VENV_PYTHON" ]]; then
|
|
echo "FEHLER: Python-venv nicht gefunden unter $VENV_PYTHON"
|
|
echo "Bitte zuerst: python3 -m venv .venv"
|
|
exit 1
|
|
fi
|
|
|
|
CRON_ENTRY="*/5 * * * * $VENV_PYTHON $PYTHON_SCRIPT >> $SCRIPT_DIR/monitor.log 2>&1"
|
|
|
|
echo "=== Wetterserver-Monitoring Setup ==="
|
|
echo ""
|
|
echo "Voraussetzung: MONITOR_SMTP_PASSWORD in .env gesetzt?"
|
|
grep -q "MONITOR_SMTP_PASSWORD=" "$SCRIPT_DIR/.env" && echo " ✓ .env enthält MONITOR_SMTP_PASSWORD" || echo " ✗ MONITOR_SMTP_PASSWORD fehlt in .env - bitte zuerst eintragen!"
|
|
echo ""
|
|
echo "Dieser Cronjob prüft alle 5 Minuten ob Wetterdaten ankommen:"
|
|
echo " $CRON_ENTRY"
|
|
echo ""
|
|
echo "Möchten Sie den Cronjob jetzt installieren? (j/n)"
|
|
read -r response
|
|
|
|
if [[ "$response" =~ ^[Jj]$ ]]; then
|
|
if crontab -l 2>/dev/null | grep -q "$PYTHON_SCRIPT"; then
|
|
echo "Cronjob existiert bereits!"
|
|
else
|
|
(crontab -l 2>/dev/null; echo "$CRON_ENTRY") | crontab -
|
|
echo "✓ Cronjob installiert"
|
|
fi
|
|
echo ""
|
|
echo "Aktive Monitoring-Cronjobs:"
|
|
crontab -l | grep check_wetterserver
|
|
echo ""
|
|
echo "Logs: $SCRIPT_DIR/monitor.log"
|
|
echo ""
|
|
echo "Testlauf:"
|
|
"$VENV_PYTHON" "$PYTHON_SCRIPT"
|
|
else
|
|
echo "Abgebrochen"
|
|
echo ""
|
|
echo "Manuell installieren:"
|
|
echo " crontab -e"
|
|
echo " Zeile einfügen: $CRON_ENTRY"
|
|
fi
|