30 lines
614 B
Plaintext
30 lines
614 B
Plaintext
|
#!/bin/bash
|
||
|
set -euo pipefail # Strikte Fehlerbehandlung
|
||
|
|
||
|
# Check für Parameter
|
||
|
if [ -z "$1" ]; then
|
||
|
echo "Usage: $0 <minutes>"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
MINS="$1" # Quote für safety
|
||
|
CREDS=$(cat /root/secret/ntfy.txt || exit 1) # Explizites error handling
|
||
|
TOPIC="KX8E5dbho7Q4VUVi-feed"
|
||
|
|
||
|
# Sende Notification
|
||
|
if ! curl -f -s \
|
||
|
-u "$CREDS" \
|
||
|
-d "Homeserver fährt in $MINS Minuten runter." \
|
||
|
-H "Title: Server Shutdown" \
|
||
|
-H "Priority: high" \
|
||
|
https://ntfy.sh/$TOPIC; then
|
||
|
echo "Failed to send notification"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# Warte auf Zustellung
|
||
|
sleep 5
|
||
|
|
||
|
# Führe Shutdown aus
|
||
|
shutdown "$MINS"
|