Hallo, ich suche nach einer Möglichkeit, automatische Backups meines neuen Discourse-Forums (einrichten in einem Digital Ocean Droplet) auf mein NAS-Gerät in meinem Heimnetzwerk durchzuführen. Wie lässt sich das bewerkstelligen?
Ich bin kein Programmierer und wüsste nicht, wo ich anfangen soll, um ein Plugin für diesen Zweck zu erstellen.
Der einfachste Weg ist die Ausführung einer automatisierten Aufgabe (Cron-Job). Je nach Ihrem NAS-System können Sie einige grundlegende Linux-Befehle wie rsync ausführen.
Sie benötigen eine Möglichkeit, das NAS und den Droplet zu verbinden. Sobald Sie diese Verbindung herstellen können, halte ich ein Plugin für übertrieben. Sie benötigen lediglich etwas wie den folgenden Code, der in einem Cron-Job auf Ihrem NAS ausgeführt wird:
Danke, Mario. Ich habe eine alte Netgear ReadyNAS Ultra 6 mit OS6, die meiner Meinung nach diesen Ansatz unterstützen könnte (ich werde das noch prüfen).
Ich vermute, dass ein Teil des Problems für mich darin besteht, herauszufinden, welche Dateien oder Ordner gesichert werden müssen – wahrscheinlich nur die Datenbank? (Und ich nehme an, dass alle hochgeladenen Bilder, Anhänge usw. darin eingebettet sind?)
Welchen Pfad sollte ich verwenden, um die Datenbank zu finden? Wird die Datenbank überhaupt als Datei im Discourse-Verzeichnis gespeichert? Ich habe mich in /var/discourse umgesehen, aber mit meinem unerfahrenen Auge nichts entdeckt, das wie eine Datenbankdatei aussah.
Ja, im Administrations-Dashboard gibt es Einstellungen, an deren Namen ich mich im Moment nicht erinnere. Das Skript, das ich dir früher geschickt habe, verwendet bereits den Standardpfad, unter dem die Backups gespeichert werden.
Aber mit rsync auf dem NAS und diesem Befehl kannst du es so anpassen, dass es auch die alten Backups vom NAS löscht. Dann bist du komplett eingerichtet.
Danke, Mariano.
Auf dem ReadyNAS-Forum wurde vorgeschlagen, dass die Verwendung von chron auf ReadyNAS zwar möglich, aber nicht ideal ist und dass die integrierten „systemd timers
Die Bereinigung erfolgt direkt von Discourse auf dem Droplet, aber rsync hat eine Unmenge an Optionen, sodass Sie den Prozess des Kopierens der Backups nach Ihren Wünschen anpassen können.
Stellen Sie sicher, dass Sie den SSH-Server neu starten. Manchmal behebt dies Probleme mit öffentlichen Schlüsseln.
Danke, Mariano.
Ich habe den Server neu gestartet, bekomme aber immer noch:
Zugriff verweigert (publickey).
rsync: Verbindung unerwartet geschlossen (0 Bytes bisher empfangen) [Receiver]
rsync-Fehler: unerklärlicher Fehler (Code 255) in io.c(235) [Receiver=3.1.3]
Zweifellos liegt das Problem bei mir – ich versuche wahrscheinlich, mich mit dem falschen Benutzer anzumelden oder so. Ich habe es zwar versucht, mich von ReadyNAS aus mit dem Namen anzumelden, den ich diesem öffentlichen Schlüssel bei der Hinzufügung zu Digital Ocean gegeben habe, sowie mit ‘root’. Beides scheint nicht zu funktionieren.
Haben Sie sich bereits mit einem Schlüssel auf dem Server angemeldet? Zum Beispiel, als Sie Discourse installiert oder die Anwendung neu aufgebaut haben?
Es könnte (obwohl es nicht sollte) sein, dass die SSH auf dem Server die öffentliche Authentifizierung deaktiviert hat, oder dass das NAS den falschen Schlüssel zur Anmeldung verwendet.
Vergessen Sie nicht, in diesem Teil des Befehls "ssh -i ~/.ssh/id-rsa" den richtigen Schlüsselnamen und Pfad anzupassen.
Verwenden Sie PuTTY, um auf den Digital Ocean-Server zuzugreifen, und geben Sie ein:
nano /root/.ssh/authorized_keys
Kopieren und fügen Sie im Editor den für ReadyNAS verwendeten öffentlichen Schlüsseltex ein und hängen Sie ihn ans Ende der Datei /root/.ssh/authorized_keys an (achten Sie darauf, vorhandene Schlüssel nicht zu überschreiben).
In den Einstellungen des ReadyNAS-Backup-Dialogs habe ich Folgendes verwendet:
Name: Backup via Rsync über Remote-SSH (Auswahl im Dropdown-Menü)
Host: meine-domain.de (oder Server-IP-Adresse)
Port: 22
Pfad: /var/discourse/shared/standalone/backups/default
Login: root
(Beachten Sie, dass bei korrekter Einrichtung von ReadyNAS für SSH-Zugriff kein SSH-Passphrase mit dem öffentlichen/privaten SSH-Schlüsselpaar verknüpft ist. Das ist wichtig, da der ReadyNAS-Backup-Dialog keine Passphrase unterstützt.)
Zunächst funktionierte dieser Prozess bei mir nicht vollständig – beim Verwenden der Schaltfläche „Testen