Einen Papierkorb auf dem Samba-Server einrichten
Ich muss vielleicht kurz ausholen, warum ich auf diese Sache gekommen bin. Gestern gab es eine kleine Nachtschicht. Ich habe einem Büro mit 4 Rechnern einen kleinen Linux-Server aufgestellt. Auf diesen wird via Samba zugegriffen. Die Gemeinsame Datennutzung sah bisher so aus:
Rechner a hatte ien externe 2,5″-Festplatte mit einem “Share” auf einem Ordner, auf dem sich alle wichtigen Daten des Büros befanden. Backup gibt es natürlich keines. Kann man eigentlich nur von Glück reden, dass bisher nichts passiert ist. Doch genug von den Schauergeschichten und zu der angenehmeren Seite.
Der Besitzer hat das Gruselszenario auch eingesehen und hat sich darauf hin einen Rechner mit 2 x 1 TByte Festplatte gekauft. Nun konnten wir entsprechend einen Datensicherungs-Plan machen und auch alle Rechner so einrichten, dass sie künftig auf dem Server arbeiten. Teilweise waren die Daten natürlich auch auf den lokalen Festplatten und Desktops – ein echtes Wirrwarr, das gleichzeitig früher oder später zu massivem Datenverlust geführt hätte.
Die besonders wichtigen Daten lassen sich bis zu einer Woche rückwirkend wieder herstellen, dann gibt es noch einen gespiegelten Bereich und einen temporären. Letzterer wird gar nicht gesichert und ist auch so ausgezeichnet.
Nachdem alle Daten kopiert waren, wurde gleich die Säuberungs-Aktion angestoßen und nicht mehr benötigtes in die Tonne getreten. Nun hatte der Besitzer etwas aus Versehen gelöscht, das er gerne noch einmal genauer angesehen hätte und fragte nach dem Papierkorb auf dem Server (obwohl auch das System nachgefragt hatte, ob die Dateien wirklich gelöscht werden sollen). Eine Recycle Bin bietet Samba per Standard nicht, lässt sich aber einrichten. Dazu fügst Du im entsprechenden Share folgende Zeilen ein:
vfs object = recycle
recycle:repository = .recycle_bin
recycle:keeptree = yes
recycle:exclude = *.tmp, *~, *.bak
recycle:repository = .recycle_bin ist nicht zwingend notwendig. Ist dieser Parameter nicht gesetzt, verwendet Samba einfach .recycle als Papierkorb. Ich dachte mir aber, es den Windows-Anwendern so einfach wie möglich zu machen und auf deren Systemen heißt der Papierkorb auch Recycle Bin. Dieses Verzeichnis erscheint nach einem Neustart des Samba Daemons nicht sofort, sondern wenn die ersten Daten gelöscht sind – also nicht verzweifelt danach suchen und an der Konfiguration zweifeln. Einfach mal eine Test-Datei anlegen, löschen und dann nach dem Ordner suchen.
Dateien die in meinem Fall unter .recycle_bin liegen, müssen manuell gelöscht werden, bevor sie endgültig in das Datennirvana geschickt werden. Mit einem relativ kleinen Eingriff kann man also viele Anwender glücklich machen, die trotz Warnung dennoch Daten löschen, die sie gerne wieder hätten. Ich werfe aber nicht den ersten Stein, weil ich selbst auch schon froh war, einen Papierkorb auf dem Samba-Server zu haben. Den offiziellen Dokumentations-Eintrag zu vfs_recycle findest Du auf der Samba-Seite.
Ich verwende einen Cronjob um Daten, die älter als 2 Wochen sind, zu löschen. Das ist meiner Meinung nach ein vernünftiger Zeitraum, um doch noch benötigte Dateien wieder herzustellen.
Abgesehen davon finde ich den Eintrag "recycle:versions = yes" noch sehr sinnvoll, um schon vorhandene Dateien nicht zu überschreiben.
Du hast Recht ... ich werde das bei dem Server genauso machen ... komme am WE wieder hin (Backup-Scripts überprüfen) und 2 Wochen scheint ein vernünftiger Zeitraum zu sein. Wer bis dahin keine Daten vermisst hat, der braucht sie auch nicht mehr 🙂 ...
Danke für den Hinweis ...
hallo jdo,
mich würde der aufbau des kleinen netzwerkes genauer interessieren. welche betriebssysteme auf den clients, gibt es eine domäne oder nur arbeitsgruppe, wird der server auch als printserver eingesetzt, wie sieht der datensicherungsplan aus und mit welchen programmen wird er umgesetzt,...
würde mich über weitere artikel in bezug auf kleine netzwerke freuen, da diese schon fast in jedem haushalt mit der technik von heute vorkommen.
Hallo,
ich nehm es mir zu Herzen und werde dieses spezielle Netzwerk mal genauer beschreiben - inklusive der Backup-Scripte. Die sind ganz normal mit Cron, tar, rsync und find umgesetzt. Alles hausmittel - keine Magie. Keine Domäne - nicht notwendig.
Die Clients sind Windows XP, Printserver brauchen Sie keinen - Netzwerkfähiger Drucker vorhanden. Gib mir aber bitte ein paar Tage Zeit dafür - muss zunächst andere Dinge fertig machen 🙂
Grüße,
Jürgen
Hallo Jürgen,
danke dass du dich dem Thema annimmst.
Zwei Sachen würden mich noch interessieren:
findet auch eine Sicherung der Clients auf dem Server statt und gibt es ein Art Benutzerverwaltung oder kann jeder Client auf alle Dateien zugreifen?
Das ist etwas komplizierter in diesem speziellen Fall. Ursprünglich gab es mehrere Sektionen, auf die unterschiedliche Anwender andere Rechte hatten. Ich hatte es schon mehrmals erwähnt, dass ich in einem totalen Nest in Ägypten wohne - und hier ist ein Server mit automatischen Backups schon ein kleines Weltwunder ...
Die Clients werden nicht gesichert ... aber zumindest gibt es nun schon mal ein Backup, das automatisch läuft! Viele kleine Schritte führen auch zum Ziel 🙂 Das mit der Benutzerverwaltung ist aber echt keine Raketenwissenschaft - einfach umsetzbar - Samba ist schon sehr lange aus den Kinderschuhen heraus. Kann mich erinnern, das erste Mal vor zirka 15 Jahren damit gespielt zu haben.
Die beiden Festplatte sind nicht mal über ein RAID aufgesetzt. Grund: Sollte ich mal hier weg gehen, ist keiner in der Lage im Falle eines Crash eine RAID-Platte zu lesen. Somit ist es einfacher, das mit rsync alle 2 Stunden laufen zu lassen. Im schlimmsten Fall -> Live CD, Platte anstecken -> Daten kopieren ...
All die da draußen vorhandene Technik ist wunderbar, aber man muss sich den Gegebenheiten fügen und auch für Fälle in die Zukunft planen.
Wie gesagt, ich werde dieses spezielle Netzwerk mal genauer beschreiben - morgen hab ich erst Mal frei! Eine Freundin feiert auch ihren 40sten und wir genießen mit vielen anderen Freunden einen schönen Tag zwischen Wüste und Rotem Meer 🙂
Fast vergessen:
Ich verwende außerdem "recycle:touch_mtime = yes" um die Dateien mit einem aktuellen Zeitstempel zu versehen.
Super Tip, danke!