In diesem Abschnitt geht es darum, unsere Pterodactyl Docker-Server auf unserem NAS als Backup zu speichern. Pterodactyl verfügt über eine großartige Funktion, mit der Crontabs Backups der einzelnen Server erstellt werden können. Wir nutzen diese Funktion, um die Backups regelmäßig automatisch auf unser NAS zu Hause zu speichern, falls unser "Pterodactyl Server" ausfällt oder beschädigt wird.
Der gesamte Vorgang wird mit zwei Skripten durchgeführt.
Zuallererst wird um 0 Uhr über Pterodactyl für jeden Server ein automatisches Backup erstellt.
Etwa 5-10 Minuten später verbindet sich unsere Synology NAS über SSH-Key mit unserem Server und startet dort ein Skript.
Dieses Skript fasst die erstellten Backups zu einer einzigen ZIP-Datei zusammen, legt sie in unser Verzeichnis und gewährt uns entsprechende Rechte.
Anschließend lädt unser NAS diese ZIP-Datei über SCP (SFTP) herunter.
Lokal wird ein neuer Ordner mit dem aktuellen Datum erstellt, in dem diese ZIP-Datei gespeichert wird.
Sobald der Download abgeschlossen ist, wird die temporäre ZIP-Datei auf dem Server gelöscht.
Anschließend sucht das Skript lokal nach Backups, die älter als 30 Tage sind, und löscht sie.
Damit das ganze nun realisieren können, müssen wir einiges einstellen
Wir verbinden uns via Putty zu unserem „Pterodactyl“ Server, dann erstellen wir uns einen neuen User mit SSH Recht & SSH-Key, sowie einem einzigen Sudo Recht, um das Script zu starten, was wir dann auch gleich erstellen.
[username= beliebiger Name für den User. z.b. synology]
Wir wechseln zu unserem neuen erstellten Benutzer und generieren uns einen 4096Bit RSA Schlüssel, ohne Passwort und erhalten somit eine verbesserte Authentifizierung auf kryptografischer Technik für den SSH-Login.
(Wir müssen hier ohne Passwort arbeiten, da die Passworteingabe nur mit Benutzerinteraktion funktioniert, und das Script aber automatisch ablaufen soll.)
Bestätigt den Namen: "~/.ssh/id_rsa" mit Enter und lasst die Passphrase (Passwort) leer.
Wir müssen den SSH-Schlüssel jetzt in die Kategorie der autorisierten Schlüssel einfügen und entsprechende Rechte vergeben, damit der Benutzter mit dem Schlüssel arbeiten kann.
(Bitte achtet darauf, dass ihr statt (/username/) euren Benutzernamen nutzt!
Markiert die komplette Ausgabe,
Von
[ -----BEGIN OPENSSH PRIVATE KEY----- ]
…
Bis
[ -----END OPENSSH PRIVATE KEY----- ]
(Damit wird der Key kopiert, erstellt euch eine Textdatei auf dem Desktop und benennt diese in “Syno-ServerKey” (ohne .txt am Ende!) fügt nun den kopierten Schlüssel ein und speichert diese Datei.
Wir benötigen zunächst das Programm "PuTTYgen", das zusammen mit PuTTY geliefert wird.
Öffnen Sie PuTTYgen und klicken Sie auf "Load". Wählen Sie unter der Kategorie "Alle Dateien (*.*)" unsere gespeicherten Syno-ServerKey aus.
Dann müssen wir auf Conversions und müssen den Schlüssel als OpenSSH key exportieren.
Vergeben Sie einen Namen für den Schlüssel, z. B. "Syno-ServerKey.pem".
Wir erstellen nun einen Ordner, in dem wir auch gleich unser Script ablegen werden.
Und dieses entsprechend vorbereiten werden. (usernamen anpassen!)
Dort tragen wir nun folgendes ein (Bitte alles genau kopieren!)
Es wird nur der username angepasst!!
Wir brauchen noch Rechte, damit der NAS-Benutzer das Script ausführen und lesen kann.
Wir wechseln zunächst erstmal wieder zum Root-User und öffnen die "Sudoers" Konfigurations-Datei.
Jetzt geben wir unserem User, das Recht nur für dieses eine Script Sudo zu verwenden.
zuerst müssen wir wieder root-user werden
Wir müssen in der Datei nun einen Eintrag setzte, das der NAS-Benutzer entsprechend das backup.sh Script startet darf
[username anpassen!]
Wir speichern mit STRG + O [Enter zum Bestätigen] und mit STRG + X die Konfiguration schließen.
Jetzt müssen wir den SSH Dienst noch neu starten, um die Änderungen wirksam zu machen.
Wir brauchen aber noch Vorbereitungen über das Webinterface von Pterodactyl.
Wichtig ist, dass ihr für jeden Server den ihr im Webinterface erstellt, auch das Backup Limit auf 1 stehen habt!
(Wie ihr das einstellt, seht ihr im Abschnitt der Pterodactyl Gameserver Installation.
Um nun ein automatisches Backup von Pterodactyl einzurichten, müssen wir auf unserem Game / Voice – Server Panel zugreifen.
Im dortigen Abschnitt „Schedules“ (Cronjob) einen neues einrichten.
Optimaler Weise nennen wir es auch direkt „Auto-Backup“
Wir möchten jeden Sonntag um 0 Uhr ein Backup erstellen lassen.
Dies wäre wie folgt : 0 0 * * 7
Möchtet ihr an anderen Zeitpunkten oder täglich so ein Backup ziehen, müsst ihr das entsprechend anpassen.
Ihr könnt euch https://crontab.guru/ zur Hilfe nehmen.
Nachdem wir nun die Zeit eingestellt habt, klicken wir auf das eben erstelle Auto-Backup
Dort können wir nun eine entsprechende Aufgabe zuteilen.
„New Task“ unter „Action“ stellen wir „Create Backup“ ein und fertig.
Wünscht ihr, dass bestimmte Ordner oder Dateien nicht mitgesichert werden sollen.
Müsst ihr diese unter „Ignored files“ eintragen.
Ihr müsst also immer mit einem Slash / zeichen beginnen, dann den Ordner bzw. Dateiname.
Wir nutzen in unserem Beispiel eine Synology NAS, aber dies dürfte für alle arten von NAS´s systeme funktionieren.
Idealerweise habt ihr eure Synology bereits seit längeren eingerichtet.
Bevor du loslegen kannst, musst du zuerst SSH auf deiner DiskStation aktivieren. Öffne die Systemsteuerung, wechselt in den erweiterten Modus und öffne im Bereich „Anwendungen“ den Punkt „Terminal & SNMP“.
Setze einen hacken bei „SSH-Dienst aktivieren“
Ändere den Standard SSH-Port für deine eigene Sicherheit z.b. (40722)
Wir benötigen auf der Synology auch den „Benutzer Home Dienst“
Systemsteuerung > Benutzer & Gruppe > Erweitert
(Ganz unten Benutzer-Home-Dienst aktivieren)
Damit das Ganze vorgehen dann auch funktioniert, müssen wir das Script später mit einem Admin Account ausführen können!
Damit unser NAS sich später mit unserem Pterodactyl-Server verbinden kann, müssen wir unseren erstellten SSH.pem key auf unseren NAS verschieben.
Ihr solltet in eurem Hauptordner des Adminbenutzers des NAS einen [.ssh] Ordner vorfinden, dort müssen wir unseren .pem Key einfügen.
Damit unser benutzter diesen SSH-Schlüssel auch benutzen kann, müssen wir via Putty uns auf das NAS-System verbinden.
Und folgenden Befehl ausführen.
Damit das Script am ende funktioniert, müssen wir uns einmalig via NAS-SSH auf unseren Server, von dem wir die Daten später Herunterladen wollen, manuell Verbinden.
den Fingerprint bestätigen. Wenn ihr nun euch nun erfolgreich verbinden konntet, könnt ihr Putty nun wieder schließen.
Jetzt müssen wir wieder in die Systemsteuerung → Aufgabenplaner und dort erstellen wir ein Geplante Aufgabe → Benutzter Definitiertes Script.
Wir nennen die Aufgabe „Server-Backups“
der Benutzer, sollte der entsprechende Adminuser sein!. (Ansonsten funktioniert es nicht und schlägt fehl.)
unter „Zeitplan“ stellen wir für unser beispiel jeden Sonntag um 00:10Uhr ein.
Damit hat der Ptero-Server selbst um 0Uhr genug zeit die Backupfiles vorzubereiten.
Unter Aufgabeneinstellungen fügt ihr nun folgendes ein.
Nun tragt ihr im oberen Abschnitt des Scripts (unter #User editable Variable) in die Anführungsstriche die entsprechenden Werte ein.
Beispiel:
NASUSER = "Admin" (der Adminuser der Synology)
VOLUME = "volume1" (Volume der NAS)
SSHKEY = "Syno-ServerKey.pem" (Name des SSHKeys (.pem)
SERVERIP = "192.168.0.555" (IP des zu Backupenden Servers)
SSHPORT = "40822" (Der SSH Port vom zu backupenden Servers)
SERVERUSER = "synology" (User des vom zu backupenden Servers)
Nachdem ihr jetzt alles eingetragen habt, übernehmen und mit Rechtsklick einen Testlauf starten.
Um zu sehen, ob es funktioniert, oder welche Fehler passieren.
Könnt ihr im Aufgabenplaner unter Einstellungen, Ausgabeergebnisse speichern.
Jetzt sollte ihr jeden Sonntag ein neues Backup bekommen auf euer NAS.
Solltet ihr inzwischen weitere Fragen haben, so schreibt mir doch gerne auf YouTube bzw. Instagram.