Cifs und Rsync

Probleme mit Samba, NFS, FTP und Co.
Antworten
fefor90
Beiträge: 2
Registriert: 09.08.2022 15:28:35

Cifs und Rsync

Beitrag von fefor90 » 09.08.2022 15:40:34

Hey Leute,
ich bin noch nicht lange in der Linux Welt unterwegs und habe von meinem Chef eine Aufgabe bekommen, um unsere NAS Systeme zu backupen auf einem Rechner, wo wir Debian installiert haben und über den wir auch alles steuern möchten.
Ich soll nun ein Skript verfassen, was das Ganze automatisiert.

Dafür muss ich später das Skript in die crontab -e Datei einfügen.

Ich soll das Ganze so gestalten, dass ich zuerst die NAS-Dateien auf den Rechner kopiere, dass würde ich über cifs machen. Hat auch einzeln funktioniert. (Hab das bei fstab eingefügt)
Danach soll ich das Ganze aber noch einmal auf dem Rechner extra speichern und den Vorgang dann noch in eine Log-Datei schreiben.

Ich habe versucht das Problem mit Rsync zu lösen, aber irgendwas läuft schief.
Ich würde auch gerne vor dem rsync -Befehl abchecken, ob der Transfer der Daten vom NAS auf den Rechner funktioniert hat. Vermutlich über eine if-Abfrage ?

Hatte jemand vielleicht schon einmal eine ähnliche Aufgabe oder kann mir generell helfen?

Vielen Dank schon einmal :)

Benutzeravatar
hikaru
Moderator
Beiträge: 13559
Registriert: 09.04.2008 12:48:59

Re: Cifs und Rsync

Beitrag von hikaru » 09.08.2022 16:40:23

fefor90 hat geschrieben: ↑ zum Beitrag ↑
09.08.2022 15:40:34
Ich soll das Ganze so gestalten, dass ich zuerst die NAS-Dateien auf den Rechner kopiere, dass würde ich über cifs machen. Hat auch einzeln funktioniert. (Hab das bei fstab eingefügt)
Danach soll ich das Ganze aber noch einmal auf dem Rechner extra speichern und den Vorgang dann noch in eine Log-Datei schreiben.
Kann man alles machen.
Ich verstehe allerdings den Punkt "noch einmal auf dem Rechner extra speichern" nicht. Heißt das, nach dem Datentransfer über das LAN soll zusätzlich eine lokale Kopie erzeugt werden? Eine zweite Kopie zu erzeugen, kann Sinn ergeben, aber zwei (hoffentlich) identische Kopien auf dem selben Rechner zu haben erscheint mir wenig sinnvoll. Auch würde ich keine zweite Kopie von einer ersten Kopie ziehen, sondern immer vom Original.
fefor90 hat geschrieben: ↑ zum Beitrag ↑
09.08.2022 15:40:34
Ich habe versucht das Problem mit Rsync zu lösen, aber irgendwas läuft schief.
Dann solltest du diesem "irgendwas" auf den Grund gehen!
fefor90 hat geschrieben: ↑ zum Beitrag ↑
09.08.2022 15:40:34
Ich würde auch gerne vor dem rsync -Befehl abchecken, ob der Transfer der Daten vom NAS auf den Rechner funktioniert hat. Vermutlich über eine if-Abfrage ?
Vor dem Transfer ist schlecht. Du könntest aber NACH dem Transfer den Exit-Status von rsync prüfen, und so eine schnelle Prüfung machen, ob rsync erfolgreich war. Dabei sei aber angemerkt, dass ein Exit-Status der einen Fehler vermuten lässt nicht zwangsläufig bedeuten muss, dass die Datensicherung fehlerhaft war. In diesen Fällen solltest du das Log prüfen.
Falsche Erfolgsmeldungen sollte es zum Glück hoffentlich nicht geben, jedenfalls nicht auf Programmebene.

fefor90
Beiträge: 2
Registriert: 09.08.2022 15:28:35

Re: Cifs und Rsync

Beitrag von fefor90 » 11.08.2022 06:53:46

Vielen Dank für die Antwort.

Das mit dem doppelt speichern habe ich falsch verstanden.

Wenn ich das jetzt alles richtig verstehe, ist es so, dass ich als erstes Cifs benutze, um die Daten freizugeben und um dann anschließend die Daten per Rsync ohne Passworteingabe übertragen(backupen) kann, weil ich die Infos im fstab gespeichert habe. Macht das so SInn?

Muss ich, wenn ich den Vorgang in eine Log Datei schreiben möchte, einfach hinter dem rsync Befehl > /var/log/rsync.log hinzufügen? Die Datei habe ich erstellt. Ist es notwendig der Log-Datei irgendwelche Rechte zu geben oder reicht es, wenn ich das gesamte Skript ausführbar mache?

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: Cifs und Rsync

Beitrag von MSfree » 11.08.2022 08:14:08

fefor90 hat geschrieben: ↑ zum Beitrag ↑
11.08.2022 06:53:46
Wenn ich das jetzt alles richtig verstehe, ist es so, dass ich als erstes Cifs benutze, um die Daten freizugeben und um dann anschließend die Daten per Rsync ohne Passworteingabe übertragen(backupen) kann, weil ich die Infos im fstab gespeichert habe. Macht das so SInn?
Meiner Meinung nach ist es keine gute Idee, rsync über CIFS zu fahren.Via CIFS ist man auf dem Server mit einem bestimmten Benutzerkonto angemeldet, hat also nur Berechtigungen, auf Dateien zuzugreifen, die man mit diesem Benutzerkonto lesen/schreiben darf. Backups sollten aber den kompletten Datenbestand erfassen, auch den anderer Benutzer.

rsync bringt übrigens sein eigenes Netzwerkprotokoll mit, eine gemountete Quelle oder ein gemountetes Ziel, egal ob CIFS oder NFS, ist also überhaupt nicht notwendig. Ich weiß natürlich nicht, was das für ein NAS ist, um das es hier geht, aber QNAP und Synology sind Linuxsysteme, die unter anderem auch SSH und rsync an Bord haben, so daß man Backups über einen SSH-Tunnel fahren kann.
Muss ich, wenn ich den Vorgang in eine Log Datei schreiben möchte, einfach hinter dem rsync Befehl > /var/log/rsync.log hinzufügen?
Ja, so mache ich das auch.
Die Datei habe ich erstellt.
Die brauchst du nicht vorab zu erstellen, die wird automatisch mit dem ">"-Zeichen angelegt. Die vorab angelegte Datei würde ohnehin überschrieben.
Ist es notwendig der Log-Datei irgendwelche Rechte zu geben
Nein. Das, was du da machst, ist ja eigentlich keine Logdatei sondern nur eine Ausgabeumleitung. Die Datei wir mit dem Besitzattribut desjenigen angelegt, der dein Backup ausführt und es ist für denjenigen schreib- und lesbar.

Benutzeravatar
hikaru
Moderator
Beiträge: 13559
Registriert: 09.04.2008 12:48:59

Re: Cifs und Rsync

Beitrag von hikaru » 11.08.2022 09:10:41

fefor90 hat geschrieben: ↑ zum Beitrag ↑
11.08.2022 06:53:46
Ist es notwendig der Log-Datei irgendwelche Rechte zu geben oder reicht es, wenn ich das gesamte Skript ausführbar mache?
Das kommt darauf an. Eine Logdatei ist eine Dokumentation eines Arbeitsvorgangs. Es könnte daher sinnvoll sein, dafür zu sorgen, dass kein Unbefugter sie liest oder beschreibt. Das ist aber keine technische, sondern eine organisatorische Frage.
Was du auf keinen Fall tun solltest ist, der Logdatei Ausführungsrechte zu geben. Im schlimmsten konstruierbaren Fall taucht darin mal eine Zeile auf, die ein valides Kommando enthält, welches bei Ausführung Schaden anrichten würde. Und dann vergisst jemand beim Versuch die Datei zum Lesen zu öffnen, den Editor aufzurufen und führt die Datei versehentlich aus.
Zugegeben, das Problem ist sehr konstruiert, aber es lässt sich durch saubere Rechtevergabe einfach abwenden.

MSfree hat geschrieben: ↑ zum Beitrag ↑
11.08.2022 08:14:08
Meiner Meinung nach ist es keine gute Idee, rsync über CIFS zu fahren.Via CIFS ist man auf dem Server mit einem bestimmten Benutzerkonto angemeldet, hat also nur Berechtigungen, auf Dateien zuzugreifen, die man mit diesem Benutzerkonto lesen/schreiben darf. Backups sollten aber den kompletten Datenbestand erfassen, auch den anderer Benutzer.
Tendenziell stimme ich dir zu. Falls man aber weiß, dass man nur Daten dieses einen Nutzers sichern will, dann ist das unproblematisch.
Falls es dann doch (versehentlich oder absichtlich) Daten anderer Nutzer gibt, die sich über cifs nicht sichern lassen, dann wird rsync dafür eine Fehlermeldung ausgeben. Das wiederum bedeutet, dass der Exit-Code nicht mehr 0 sein wird und falls man diesen automatisch prüft, wird man so "unnötige" Fehlermeldungen bekommen.
MSfree hat geschrieben: ↑ zum Beitrag ↑
11.08.2022 08:14:08
Muss ich, wenn ich den Vorgang in eine Log Datei schreiben möchte, einfach hinter dem rsync Befehl > /var/log/rsync.log hinzufügen?
Ja, so mache ich das auch.
Vorsicht! Fehlermeldungen schreibt rsync nach STDERR, nicht nach STDOUT. Wenn man diese also ebenfalls im Protokoll haben will, dann muss man STDERR umleiten. Alternativ kann man das auch als Feature sehen, und für Fehlermeldungen gezielt ein gesondertes Protokoll anlegen.
MSfree hat geschrieben: ↑ zum Beitrag ↑
11.08.2022 08:14:08
Die brauchst du nicht vorab zu erstellen, die wird automatisch mit dem ">"-Zeichen angelegt. Die vorab angelegte Datei würde ohnehin überschrieben.
Auch hier Vorsicht! Ob bereits existierende Dateien bei einer einfachen Umlenkung überschrieben werden, hängt von der umgebenden Shell ab. Man kann das Überschreiben erzwingen, indem man noch ein Ausrufezeichen mitgibt (">!").

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: Cifs und Rsync

Beitrag von MSfree » 11.08.2022 09:35:04

hikaru hat geschrieben: ↑ zum Beitrag ↑
11.08.2022 09:10:41
Falls es dann doch (versehentlich oder absichtlich) Daten anderer Nutzer gibt, die sich über cifs nicht sichern lassen, dann wird rsync dafür eine Fehlermeldung ausgeben. Das wiederum bedeutet, dass der Exit-Code nicht mehr 0 sein wird und falls man diesen automatisch prüft, wird man so "unnötige" Fehlermeldungen bekommen.
Zu dem Thema zitiere ich mal den ersten Post:
Ich habe versucht das Problem mit Rsync zu lösen, aber irgendwas läuft schief.
Möglicherweise ist die Ursache dieses "irgendwas" das Problem, daß einige Dateien nicht les/schreibbar sind.

Antworten