## 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 ```