## 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. ``` ### Verwendung - Führen Sie das Skript aus: ```bash ./shell_ntfy_remote_shutdown.sh ``` - Stellen Sie sicher, dass alle Variablen in der `.env`-Datei korrekt gesetzt sind, um Laufzeitfehler zu vermeiden. ### Sicherheitshinweise - Stellen Sie sicher, dass die `.env`-Datei restriktive Berechtigungen hat (`chmod 600`), um unbefugten Zugriff auf sensible Daten wie Passwörter und Tokens zu verhindern. - Vermeiden Sie es, sensible Informationen direkt im Skript zu hinterlegen.