c0d3.r3d
Goto Top

Verzeichnisüberwachung auf Änderung unter Linux SMB mit Dateirevision

Mahlzeit,

dieses Thema ist schon des öfteren angesprochen worden, ich suche aber eine konkrete Möglichkeit der Umsetzung.

Gegeben ist ein Fileserver auf Debian Basis, welcher über SMB für Windows Clients Freigaben anbietet.
Die Freigaben enthalten Ordner und Dateien, von KB bis in den zweistelligen GB-Bereich.
Wird eine Datei geändert, so soll in einem anderen Verzeichnis die Datei vor der Veränderung abgelegt werden (ähnlich einer Dateirevision).

Das ganze soll automatisiert Ablaufen, und jede Veränderung aufzeichnen, sodass jeder Stand wiederhergestellt werden kann.
Bei Dateien im KB Bereich sicherlich kein Problem, bei größeren Dateien von 20-30 GB stell ich mir dies schon schwerer vor. Hier müsste in der Zeit, wo die Datei kopiert wird (zur Revision) der Server für den Schreibzugriff gesperrt werden.

Idee von mir: nicht die ganze Datei zu sichern, sondern in Blöcke aufzuteilen und die veränderten Blöcke zu speichern. Unter Linux sicherlich kein Problem, nur wie ist mir noch unbekannt.

Gibt es für soetwas schon fertige Software oder Skriptansätze?
Es soll kein Backupkonzept hiermit erstellt werden, sondern eine Dateirevision um Änderungen nachzuvollziehen.

VG und einen sonnigen Sonntag!

Content-ID: 92711816775

Url: https://administrator.de/forum/verzeichnisueberwachung-auf-aenderung-unter-linux-smb-mit-dateirevision-92711816775.html

Ausgedruckt am: 02.02.2025 um 02:02 Uhr

13034433319
13034433319 12.05.2024 aktualisiert um 14:51:00 Uhr
Goto Top
Also entweder du nutzt ein System ala Git mit CheckIn/CheckOut inkl. Versionsverwaltung was aber für Otto-Normaluser eher schwer verständlich ist und du sie erst schulen musst, oder aber du setzt ein entsprechendes Dateisystem im Unterbau ein das CopyOnWrite verwendet und eingebaute Snapshot-Technik bietet, wie bspw. ZFS. Damit erstellst du automatisierte Snapshots entweder regelmäßig per Cron oder auch per Trigger wie mit den inotify Tools.


Bei CopyOnWrite wird bei jeder Änderung nämlich eine Kopie der Datei angelegt und die Änderung nur an der Kopie vorgenommen und anschließend die Metadaten aktualisiert.

Es gibt aber auch eine manuelle Variante die mit Hardlinks (cp und rsync) arbeitet, dabei wird für einen Snapshot mit cp ein Klon mit Hardlinks erzeugt der anschließenden mit rsync aus der Datenquelle bespielt wird. Dabei werden dann nur die tatsächlich geänderten Dateien in diesem Klon ersetzt was erheblich Speicher spart.
Rsnapshot macht sowas bspw. als fertige Software, lässt sich aber auch mit ein paar Zeilem Bash selbst skripten.

Gruß
Lochkartenstanzer
Lösung Lochkartenstanzer 12.05.2024 aktualisiert um 17:42:48 Uhr
Goto Top
Moin,

Du brauchst ein versioning filesystem wie z.B. NILFS, wenn es nicht jedesmal ein komplettes Snapshot des Filesystems getriggert werden soll.

lks
Harald99
Lösung Harald99 02.06.2024 um 21:34:24 Uhr
Goto Top