Nextcloud Backup Befehle verstehen

Pyrukar

Captain
Registriert
Jan. 2013
Beiträge
3.470
Hallo zusammen,

ich habe kürzlich versucht ein Backup meiner Nextcloud (auf einem Synology NAS) auf eine Externe Festplatte zu machen (sowohl NC Selbst als auch Datenbank). Das ganze soll über mein Manjaro Linux laufen (also Netzwerkkabel und USB Festplatte jeweils im PC). Dabei bin ich aber leider an den entsprechenden Befehlen gescheitert bzw an der Pfadstruktur die ich benötige. Vielleicht habe ich auch einen Denkfehler gemacht ... hier der Dokumentationseintrag wie es funktionieren soll :)

Also ich habe zuerst mir zugriff auf die Daten mittels Netzwerkzugriff verschafft und im Config der NC auf Maintenance Mode = True gestellt ... soweit so gut.

Dann kam der erste Befehl, und damit die Verständnisprobleme: rsync -Aavx nextcloud/ nextcloud-dirbkp_`date +"%Y%m%d"`/ Also hab ich erstmal rsync -h eingegeben und mir den Befehl angeschaut. "nextcloud/" müsste der Ordner sein, der gesichert werden soll ... " nextcloud-dirbkp_`date +"%Y%m%d"` " ist wenn ich es richtig verstanden habe nur der Dateiname der am schluss rauskommen soll und " / " bedeutet doch nur, dass der Ordner im home verzeichnis erstellt werden soll. Ist das soweit Richtig oder habe ich hier schon was falsch verstanden?

Jetzt nämlich das Problem Wo muss ich den Befehl ausführen? vermutlich auf dem Pfad auf dem dann der Ordner Nextcloud liegt, oder? Wenn ich das da aber mache ... ist sekunden später die Konsole volll mit fehlermeldungen wie:
rsync: [receiver] failed to set times on "/run/user/1000/gvfs/afp-volume:host=xyz.local,user=abc,volume=web/nextcloud-dirbkp_20200907/3rdparty/doctrine/common/lib/Doctrine/Common/Reflection/.StaticReflectionClass.php.tps0uy": Operation not supported (95)
(Pfad identifyer hab ich tlw. mit xyz ersetzt, Benutzer mit abc)
und anscheinend kommt er da auch nach mehreren Minuten nicht Weiter obwohl der Ordner weniger als 300mb hat und das ja innerhalb kurzer Zeit kopiert sein müsste. Auch finde ich in meinem Home verzeichnis keinen neuen Ordner der doch eigentlich erschafft werden sollte. Auf dem Server selbst auch nicht.

an das Backup der Database hab ich mich bisher noch gar nicht drann getraut aber auch einige Fragen:

also der Befehl dazu ist:
mysqldump --single-transaction -h [server] -u [username] -p[password] [db_name] > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak

Aber wie zum Teufel bekomme ich den Pfad zu meiner Externen HDD darin eingebunden? Ich meine eine 300mb datei auf der SSD zwischenzuspeichern ist ja eine Sache ... die ca 2TB von meiner NC kann ich aber rein Physisch nicht mal kurz im Home verzeichnis speichern :( Kann ich die HDD auch an den USB Port der Synology NAS anschließen und den PC damit aus der Gleichung nehmen? Wie bekomme ich den korrekten Pfad dazu dann raus?
bedeutet [server] bei einem Lokalen NAS einfach die Lokale IP? Bei [username], [password], [db_name] sind vermutlich die Angaben beim Aufsetzen der NC gemeint und nicht die Benutzer und PW der Nextcloud Accounts, oder? Um die PWs mache ich mir keine Sorgen, aber ich weis nichtmehr genau, wie ich die DBs und den Benutzer genannt habe, kann ich das irgendwo in den Dateien auslesen oder muss ich mich durchprobieren, bis ich die richtigen einstellungen finde?

Gruß
Pyrukar

PS: Da das meiste ja Linux Fragen sind hoffe ich dass ich in diesem Forum an der richtigen Stelle bin :)
 
Was den Befehl rsync -Aavx nextcloud/ nextcloud-dirbkp_`date +"%Y%m%d"`/ angeht liegst du schon einmal damit richtig, dass "nextcloud/" der zu sichernde Ordner ist. Das kann dann also als voller Pfad zB /var/www/nextcloud sein. Das "nextcloud-dirbkp" sollte durch das Ziel ersetzt werden. Wenn deine externe Festplatte also unter zB /mnt zu finden ist müsste das dann /mnt/nextcloud_backup_`date +"%Y%m%d` ersetzt werden. Der Teil in den `` wird übrigens als eigener Befehl ausgeführt und hat zur folge, dass der Ordner dann, in meinem Beispiel, "nextcloud_backup_20200907" heißen würde.
Der / am Ende hat nichts mit dem Home-Verzeichniss zu tun. Das Signalisiert meist, dass es sich um einen Ordner handelt und nicht um eine Datei. Aber bei den meistens shells ist das egal ob man den dazu schreibt oder nicht. Der Indikator für dein Home-Verzeichniss ist ein führendes "~/"

Was den SQL-Befehl angeht musst du wieder das "nextcloud-dirbkp..." durch dein Ziel ersetzen. Das ">" sorgt einfach dafür, dass alles was normalerweise in die Console geschrieben werden würde in eine Datei geschrieben wird, die dann danach genannt wird. Du kannst das auch mal ausprobieren. Wenn du echo "Hallo Welt" eingibst, wird es dir direkt angezeigt. Wenn du aber echo "Hallo Welt" > ausgabe.txt eingibst. Wird nichts ausgegeben, aber die Datei "ausgabe.txt" erstellt, die dann den Text "Hallo Welt" enthält.

Edit: Ich hab wohl übersehen, dass Nextcloud nicht auf dem Rechner ist, an dem die externe Festplatte ist. Was das direkt ans NAS anschließen angeht, wäre das bestimmt leichter, da ich allerdings keine Ahnung von Synology habe, kann ich da leider nicht weiterhelfen. Wenn du über SSH aber an eine Konsole auf dem NAS kommen kannst, kannst du alles recht einfach direkt von dort machen.
 
Zuletzt bearbeitet:
rsync synchronisiert lediglich Ordner, das macht aus meiner Sicht keinen Sinn, da die Syns jedes mal riesig sind. Ich würde eher ein inkrementelles Backuptool wie z.B. borgbackup nutzen.

Der nextcloud-dirbkp_`date +"%Y%m%d"`/ ist also eine Ordnerangabe und keine Datei!
Das ist der Ordner wo du es hinhaben willst. hier relativ zum aktuellen Verzeichnis (pwd). Nach Home würdest du es mit der Tilde hinbekommen (~)

Zur zweiten Frage: mysqldump schreibt einfach auf den stdout. Diesen kann man mit ">" umleiten. nextcloud-sqlbkp_`date +"%Y%m%d"`.bak Das ist in deinem Fall die Zieldatei.

Kann ich die HDD auch an den USB Port der Synology NAS anschließen und den PC damit aus der Gleichung nehmen?

Macht wenig Sinn, da es sowieso den Round-trip über deinen PC nimmt.
Wenn du die USB Festplatte z.B. nach /media/myusb mountest könntest du es so sichern:
Code:
rsync -Aavx nextcloud/ /media/myusb/nextcloud-dirbkp_`date +"%Y%m%d"`/

und:
Code:
mysqldump --single-transaction -h [server] -u [username] -p[password] [db_name] > /media/myusb/nextcloud-sqlbkp_`date +"%Y%m%d"`.bak
 
wayne_757 schrieb:
Ich würde eher ein inkrementelles Backuptool wie z.B. borgbackup nutzen.
Okay, kannst du mir dann ggf sagen wie dort der Befehl aussehen würde und kann ich damit einfach den Ganzen Inhalt meiner Synology NAS Sichern (also sozusagen Datenbank und NC Dateien in einem Aufwasch)?
 
Entweder Borgbackup oder restic wäre hier interessant für dich. Die Befehle würde ich mir an deiner Stelle aber selbst angucken bzw. raussuchen, damit du weißt, was du da tust.
 
Zurück
Oben