Files
shell_ntfy_remote_shutdown/README.md
2024-12-21 10:32:20 +01:00

2.4 KiB

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:
sudo apt install curl sshpass
  1. 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. Setzen Sie die korrekten Dateiberechtigungen, um die Sicherheit zu gewährleisten:
chmod 700 backup.sh
chmod 600 backup.env

Konfiguration

Erstellen Sie eine .env-Datei mit den folgenden Variablen:

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

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:
./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.