Compare commits
9 Commits
3fb0a83988
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| ad3fe8dd6f | |||
| 4aa4e9c0f7 | |||
| 5617e3a03c | |||
| 8214ecf60d | |||
| 30960779d7 | |||
| b2c60a7ace | |||
| eee514a5e4 | |||
| f8dfde8b9b | |||
| 9d89462d5b |
2
.gitignore
vendored
Normal file → Executable file
2
.gitignore
vendored
Normal file → Executable file
@@ -1 +1 @@
|
|||||||
shell_ntfy_remote_shutdown.env
|
shell_ntfy_remote_shutdown_QNAS.env
|
||||||
28
README.md
Normal file → Executable file
28
README.md
Normal file → Executable file
@@ -1,6 +1,6 @@
|
|||||||
## Skript zum herunterfahren einer entfernten Computers
|
## 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.
|
Dieses Skript automatisiert das herunterfahren eines Servers per SSH und sendet eine Benachrichtigung an einen NTFY Server. Es verwendet `curl` zum Senden von Benachrichtigungen und `sshpass` zum Ausführen von Remote-Befehlen.
|
||||||
|
|
||||||
### Funktionen
|
### Funktionen
|
||||||
|
|
||||||
@@ -20,25 +20,33 @@ Dieses Skript automatisiert das Senden einer Benachrichtigung nach Abschluss ein
|
|||||||
```bash
|
```bash
|
||||||
sudo apt install curl sshpass
|
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).
|
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. shell_ntfy_remote_shutdown.sh und shell_ntfy_remote_shutdown.env).
|
||||||
3. Setzen Sie die korrekten Dateiberechtigungen, um die Sicherheit zu gewährleisten:
|
3. Setzen Sie die korrekten Dateiberechtigungen, um die Sicherheit zu gewährleisten:
|
||||||
```bash
|
```bash
|
||||||
chmod 700 backup.sh
|
chmod 700 shell_ntfy_remote_shutdown.sh
|
||||||
chmod 600 backup.env
|
chmod 600 shell_ntfy_remote_shutdown.env
|
||||||
|
chmod +x shell_ntfy_remote_shutdown.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
### Konfiguration
|
### Konfiguration
|
||||||
|
|
||||||
Erstellen Sie eine `.env`-Datei mit den folgenden Variablen:
|
Erstellen Sie eine `.env`-Datei mit den folgenden Variablen:
|
||||||
```bash
|
```bash
|
||||||
NTFY_URL=https://ntfy.gofel.net/
|
# NTFY Server
|
||||||
AUTH_TOKEN=tk_dd5geasc9844jcm3d45adio3rtchs
|
NTFY_URL=https://ntfy.server.net/
|
||||||
|
AUTH_TOKEN=tk_elwqvm6niscdn30f45iksdfh6sope
|
||||||
|
|
||||||
|
# Duplicati Server
|
||||||
DUPLICATI_URL=http://192.168.178.100:8200
|
DUPLICATI_URL=http://192.168.178.100:8200
|
||||||
SERVER_NAME=unRAID
|
SERVER_NAME=unRAID
|
||||||
|
|
||||||
|
# NTFY Icon (Optional / Leer lassen falls nicht benötigt)
|
||||||
ICON=http://192.168.178.25:3030/icons/qnap-ts-412.png
|
ICON=http://192.168.178.25:3030/icons/qnap-ts-412.png
|
||||||
SSH_PASSWORD=pass
|
|
||||||
SSH_USER=admin
|
# SSH Zugangsdaten des entfernten System
|
||||||
SSH_HOST=192.168.178.105
|
SSH_HOST=192.168.178.105
|
||||||
|
SSH_USER=sshuser
|
||||||
|
SSH_PASSWORD=sshpass
|
||||||
```
|
```
|
||||||
|
|
||||||
### Beschreibung der Variablen
|
### Beschreibung der Variablen
|
||||||
@@ -49,9 +57,9 @@ AUTH_TOKEN: Authentifizierungstoken für den NTFY-Server.
|
|||||||
DUPLICATI_URL: URL zum Öffnen des Duplicati-Backup-Dashboards.
|
DUPLICATI_URL: URL zum Öffnen des Duplicati-Backup-Dashboards.
|
||||||
SERVER_NAME: Anzeigename des Servers.
|
SERVER_NAME: Anzeigename des Servers.
|
||||||
ICON: URL für das Benachrichtigungssymbol.
|
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.
|
SSH_HOST: Hostname oder IP-Adresse des Servers.
|
||||||
|
SSH_USER: Benutzername für die SSH-Anmeldung.
|
||||||
|
SSH_PASSWORD: Passwort für die SSH-Anmeldung am Server.
|
||||||
```
|
```
|
||||||
|
|
||||||
### Verwendung
|
### Verwendung
|
||||||
|
|||||||
17
shell_ntfy_remote_shutdown.env
Normal file → Executable file
17
shell_ntfy_remote_shutdown.env
Normal file → Executable file
@@ -1,8 +1,15 @@
|
|||||||
NTFY_URL=https://ntfy.gofel.net/
|
# NTFY Server
|
||||||
AUTH_TOKEN=tk_jtt0zcnmephixstrp9tleb6klf0zu
|
NTFY_URL=https://ntfy.server.net/
|
||||||
|
AUTH_TOKEN=tk_elwqvm6niscdn30f45iksdfh6sope
|
||||||
|
|
||||||
|
# Duplicati Server
|
||||||
DUPLICATI_URL=http://192.168.178.100:8200
|
DUPLICATI_URL=http://192.168.178.100:8200
|
||||||
SERVER_NAME=unRAID
|
SERVER_NAME=unRAID
|
||||||
|
|
||||||
|
# NTFY Icon (Optional / Leer lassen falls nicht benötigt)
|
||||||
ICON=http://192.168.178.25:3030/icons/qnap-ts-412.png
|
ICON=http://192.168.178.25:3030/icons/qnap-ts-412.png
|
||||||
SSH_PASSWORD=uio390273
|
|
||||||
SSH_USER=admin
|
# SSH Zugangsdaten des entfernten System
|
||||||
SSH_HOST=192.168.178.105
|
SSH_HOST=192.168.178.105
|
||||||
|
SSH_USER=sshuser
|
||||||
|
SSH_PASSWORD=sshpass
|
||||||
|
|||||||
37
shell_ntfy_remote_shutdown.sh
Normal file → Executable file
37
shell_ntfy_remote_shutdown.sh
Normal file → Executable file
@@ -12,20 +12,27 @@ fi
|
|||||||
# .env-Datei laden
|
# .env-Datei laden
|
||||||
source "$ENV_FILE"
|
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
|
# Server herunterfahren
|
||||||
sshpass -p "$SSH_PASSWORD" ssh -o "StrictHostKeyChecking=no" "$SSH_USER@$SSH_HOST" "poweroff"
|
#sshpass -p "$SSH_PASSWORD" ssh -o "StrictHostKeyChecking=no" "$SSH_USER@$SSH_HOST" "poweroff"
|
||||||
|
#sshpass -p "$SSH_PASSWORD" ssh -o "StrictHostKeyChecking=no" "$SSH_USER@$SSH_HOST" "shutdown"
|
||||||
|
|
||||||
|
|
||||||
|
# NTFY-Benachrichtigung vorbereiten
|
||||||
|
CURL_CMD="curl -s -X POST \"$NTFY_URL\" \
|
||||||
|
-H \"Authorization: Bearer $AUTH_TOKEN\" \
|
||||||
|
-H \"Priority: default\" \
|
||||||
|
-H \"Tags: checkered_flag\""
|
||||||
|
[ -n "$ICON" ] && CURL_CMD="$CURL_CMD -H \"Icon: $ICON\""
|
||||||
|
CURL_CMD="$CURL_CMD -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\\\" }]
|
||||||
|
}\""
|
||||||
|
|
||||||
|
|
||||||
|
# Benachrichtigung senden
|
||||||
|
/bin/bash -c "$CURL_CMD"
|
||||||
Reference in New Issue
Block a user