102 lines
2.7 KiB
Markdown
102 lines
2.7 KiB
Markdown
## Skript zum herunterfahren einer entfernten Computers
|
|
|
|
Dieses Skript automatisiert das Herunterfahren eines Servers per SSH und sendet anschließend eine Benachrichtigung an einen NTFY-Server.
|
|
|
|
Für die Benachrichtigungen wird `curl` verwendet.
|
|
Das Herunterfahren erfolgt per `ssh`. Dafür muss zuvor ein SSH-Key zwischen den Systemen ausgetauscht werden.
|
|
|
|
### 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.
|
|
`NTFY` Ein NTFY-Server für Benachrichtigungen
|
|
|
|
### Installation
|
|
|
|
1. Stellen Sie sicher, dass `curl` auf Ihrem System installiert sind:
|
|
```bash
|
|
sudo apt install curl
|
|
```
|
|
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:
|
|
```bash
|
|
chmod 700 shell_ntfy_remote_shutdown.sh
|
|
chmod 600 shell_ntfy_remote_shutdown.env
|
|
chmod +x shell_ntfy_remote_shutdown.sh
|
|
```
|
|
|
|
### Konfiguration
|
|
|
|
Erstellen Sie eine `.conf`-Datei mit den folgenden Variablen:
|
|
```bash
|
|
# NTFY Server
|
|
NTFY_URL=https://ntfy.server.net/
|
|
AUTH_TOKEN=tk_ntfytoken
|
|
|
|
# Duplicati Server
|
|
DUPLICATI_URL=http://192.168.178.100:8200
|
|
SERVER_NAME=unRAID
|
|
|
|
# NTFY Icon (Optional / Leer lassen falls nicht benötigt)
|
|
ICON=http://192.168.178.25:3030/icons/qnap-ts-412.png
|
|
|
|
# Entfernter Computer
|
|
SSH_HOST=192.168.178.105
|
|
SSH_USER=admin
|
|
SSH_KEY=/config/.ssh/id_ed25519
|
|
```
|
|
|
|
### 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_HOST: Hostname oder IP-Adresse des Servers.
|
|
SSH_USER: Benutzername für die SSH-Anmeldung.
|
|
SSH_KEY: Pfad zum privaten SSH-Key.
|
|
```
|
|
|
|
|
|
### SSH-Key erstellen und austauschen
|
|
|
|
Für die passwortlose SSH-Anmeldung muss zunächst ein SSH-Key erzeugt und auf das Zielsystem kopiert werden.
|
|
|
|
#### 1. SSH-Key erstellen
|
|
|
|
```bash
|
|
ssh-keygen -t ed25519
|
|
```
|
|
Dadurch werden folgende Dateien erzeugt:
|
|
|
|
```bash
|
|
~/.ssh/id_ed25519
|
|
~/.ssh/id_ed25519.pub
|
|
```
|
|
|
|
#### 2. Public Key auf das Zielsystem kopieren
|
|
|
|
```bash
|
|
ssh-copy-id -i ~/.ssh/id_ed25519.pub USER@HOST
|
|
```
|
|
|
|
Beispiel:
|
|
|
|
```bash
|
|
ssh-copy-id -i ~/.ssh/id_ed25519.pub admin@192.168.178.105
|
|
```
|
|
|
|
|
|
### Verwendung des Scripts
|
|
- Führen Sie das Skript aus:
|
|
```bash
|
|
./shell_ntfy_remote_shutdown.sh
|
|
```
|