initial
This commit is contained in:
55
README.md
Normal file
55
README.md
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
## Skript zum herunterfahren einer entfernten Computers
|
||||||
|
|
||||||
|
Dieses Skript automatisiert das Senden einer Benachrichtigung nach Abschluss eines Backup-Vorgangs und das Herunterfahren eines Servers per SSH. Es verwendet `curl` zum Senden von Benachrichtigungen und `sshpass` zum Ausführen von Remote-Befehlen.
|
||||||
|
|
||||||
|
### Funktionen
|
||||||
|
|
||||||
|
- Sendet eine Benachrichtigung an einen NTFY-Server mit benutzerdefinierten Details.
|
||||||
|
- Führt das Herunterfahren eines Servers über SSH durch.
|
||||||
|
- Lädt Konfigurationsvariablen aus einer externen .env-Datei.
|
||||||
|
|
||||||
|
### Voraussetzungen
|
||||||
|
|
||||||
|
`curl` Benötigt für das Senden von HTTP-Anfragen.
|
||||||
|
`sshpass` Benötigt für die nicht-interaktive SSH-Anmeldung.
|
||||||
|
`NTFY` Ein NTFY-Server für Benachrichtigungen
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
|
||||||
|
1. Stellen Sie sicher, dass `curl` und `sshpass` auf Ihrem System installiert sind:
|
||||||
|
```bash
|
||||||
|
sudo apt install curl sshpass
|
||||||
|
```
|
||||||
|
2. Platzieren Sie das Skript und eine .env-Datei im gleichen Verzeichnis. Die .env-Datei muss denselben Namen wie das Skript haben, jedoch mit der Endung .env (z. B. backup.sh und backup.env).
|
||||||
|
3. Setzen Sie die korrekten Dateiberechtigungen, um die Sicherheit zu gewährleisten:
|
||||||
|
```bash
|
||||||
|
chmod 700 backup.sh
|
||||||
|
chmod 600 backup.env
|
||||||
|
```
|
||||||
|
|
||||||
|
### Konfiguration
|
||||||
|
|
||||||
|
Erstellen Sie eine `.env`-Datei mit den folgenden Variablen:
|
||||||
|
```bash
|
||||||
|
NTFY_URL=https://ntfy.gofel.net/
|
||||||
|
AUTH_TOKEN=tk_dd5geasc9844jcm3d45adio3rtchs
|
||||||
|
DUPLICATI_URL=http://192.168.178.100:8200
|
||||||
|
SERVER_NAME=unRAID
|
||||||
|
ICON=http://192.168.178.25:3030/icons/qnap-ts-412.png
|
||||||
|
SSH_PASSWORD=pass
|
||||||
|
SSH_USER=admin
|
||||||
|
SSH_HOST=192.168.178.105
|
||||||
|
```
|
||||||
|
|
||||||
|
### Beschreibung der Variablen
|
||||||
|
|
||||||
|
```bash
|
||||||
|
NTFY_URL: Die Basis-URL des NTFY-Servers.
|
||||||
|
AUTH_TOKEN: Authentifizierungstoken für den NTFY-Server.
|
||||||
|
DUPLICATI_URL: URL zum Öffnen des Duplicati-Backup-Dashboards.
|
||||||
|
SERVER_NAME: Anzeigename des Servers.
|
||||||
|
ICON: URL für das Benachrichtigungssymbol.
|
||||||
|
SSH_PASSWORD: Passwort für die SSH-Anmeldung am Server.
|
||||||
|
SSH_USER: Benutzername für die SSH-Anmeldung.
|
||||||
|
SSH_HOST: Hostname oder IP-Adresse des Servers.
|
||||||
|
```
|
||||||
8
shell_ntfy_remote_shutdown.env
Normal file
8
shell_ntfy_remote_shutdown.env
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
NTFY_URL=https://ntfy.gofel.net/
|
||||||
|
AUTH_TOKEN=tk_jtt0zcnmephixstrp9tleb6klf0zu
|
||||||
|
DUPLICATI_URL=http://192.168.178.100:8200
|
||||||
|
SERVER_NAME=unRAID
|
||||||
|
ICON=http://192.168.178.25:3030/icons/qnap-ts-412.png
|
||||||
|
SSH_PASSWORD=uio390273
|
||||||
|
SSH_USER=admin
|
||||||
|
SSH_HOST=192.168.178.105
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Pfad zur .env-Datei dynamisch ermitteln
|
||||||
|
ENV_FILE="$(dirname "$(realpath "$0")")/$(basename "$0" .sh).env"
|
||||||
|
|
||||||
|
# Prüfen, ob die .env-Datei existiert
|
||||||
|
if [[ ! -f "$ENV_FILE" ]]; then
|
||||||
|
echo "Fehler: Konfigurationsdatei $ENV_FILE nicht gefunden."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# .env-Datei laden
|
||||||
|
source "$ENV_FILE"
|
||||||
|
|
||||||
|
# NTFY-Benachrichtigung senden
|
||||||
|
curl -s -X POST "$NTFY_URL" \
|
||||||
|
-H "Authorization: Bearer $AUTH_TOKEN" \
|
||||||
|
-H "Priority: default" \
|
||||||
|
-H "Tags: checkered_flag" \
|
||||||
|
-H "Icon: $ICON" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d "{
|
||||||
|
\"topic\": \"Duplicati\",
|
||||||
|
\"title\": \"Backups beendet\",
|
||||||
|
\"message\": \"QNas wird heruntergefahren.\n\nServer: $SERVER_NAME\",
|
||||||
|
\"click\": \"\",
|
||||||
|
\"actions\": [{ \"action\": \"view\", \"label\": \"Duplicati öffnen\", \"url\": \"$DUPLICATI_URL\" }]
|
||||||
|
}"
|
||||||
|
|
||||||
|
# Server herunterfahren
|
||||||
|
sshpass -p "$SSH_PASSWORD" ssh -o "StrictHostKeyChecking=no" "$SSH_USER@$SSH_HOST" "poweroff"
|
||||||
|
|||||||
Reference in New Issue
Block a user