mylight
Goto Top

Netzlaufwerk: einfache Liste der täglich gelöschten, geänderten+neuen Files

wir haben Windows Clients, das zentrale Teamlaufwerk liegt auf einem Netzwerkserver
(ca. 100Gb, 10.000 Verzeichnisse, 180.000Dateien), auf die Konsole des NetApp Servers habe ich keinen Zugriff.

Backups werden zwar von der IT erstellt, aber oft stellt man erst nach Monaten fest, dass z.B. im Verzeichnis einer
alten Ausschreibung dort vermutete Daten nicht mehr da sind..
Beim Restorprozess (über die Hotline) muss man den Restore-Zeitpunkt angegeben - schwierig wenn man nicht
weiß, seit wann die Daten denn weg sind..

Es gibt viele User die Lese/Schreib Zugriff haben - da ist es schwer über 180.000 Dateien den Überblick zu behalten.
Alles Read-Only zu machen geht auch nicht, da immer wieder etwas in die Verzeichnisse hinzukommen muss.

Das Backup läuft bei der zentralen IT, die lassen mich nicht an die Logs ran.
Ich suche daher eine einfache Lösung die mir täglich (am Abend) eine Liste (.txt File genügt) der seit gestern Abend
gelöschten, geänderten und neuen Dateien ausgibt. Dann stelle ich am Morgen gleich fest wenn was fehlt oder irgendwo
abgelegt wurde wo es nicht hingehört. Ein Backup brauche ich ja nicht - nur die Liste.

Das Erstellen der Liste könnte auf meinen Arbeits-PC laufen - der rennt immer durch.
Neue und geänderte Datein könnte man ja noch über das Archiv-Bit finden, auflisten und die Attribute dann zurücksetzen.
Aber für gelöschte Dateien klappt das nicht, die sind ja weg.

Gibt es ein geeignetes Tool, das täglich z.B. per geplantem Task gestartet (im Vergleich zum letzten Durchlauf)
die neuen + geänderten und gelöschten Dateien auf einem Netzlaufwerk findet und mir nur diese als .txt Liste ausgibt?
Ich grüble schon lange an dem Problem - bin für jeden Tipp dankbar!

Content-ID: 453875

Url: https://administrator.de/contentid/453875

Ausgedruckt am: 25.11.2024 um 07:11 Uhr

LeeX01
LeeX01 21.05.2019 um 22:43:23 Uhr
Goto Top
hi,

du brauchst ja bloß ein Listing zu erstellen und mit dem vom vorherigen Tag vergleichen.

Grüße
mylight
mylight 21.05.2019 aktualisiert um 22:53:50 Uhr
Goto Top
hi,
aber geht das - kommt irgendwo eine Datei hinzu oder wird gelöscht dann verschieben sich
alle folgenden Zeilen der Liste und ich habe ab da per Zeilenvergleich nur noch Unterschiede, oder?
LeeX01
LeeX01 21.05.2019 um 22:52:33 Uhr
Goto Top
ja das geht, siehe z.B. diff
LeeX01
LeeX01 21.05.2019 um 22:55:04 Uhr
Goto Top
deine Admins werden sich übrigens bedanken wenn du ihnen archivbits verämderst und traffic auf dem Storage erzeugst während nachts das Backup läuft.
mylight
mylight 21.05.2019 um 23:04:39 Uhr
Goto Top
Kein Problem - die sichern mit TSM, da wird das Archivbit nicht benötigt.
Gesichert wird auch erst spät in der Nacht, das Erstellen einer Liste solle ja in ein paar Minuten durch sein,
werde das die nächsten Tage mal probieren. Danke für den Tipp.
Dilbert-MD
Lösung Dilbert-MD 21.05.2019 um 23:07:28 Uhr
Goto Top
Hallo,

ich habe vor einiger Zeit 'mal eine Backupsoftware installiert, die Quelle und Ziel syncronisiert (einweg) und anschließend ein LOG schreibt, in dem Neue, Gelöschte und Geänderte Dateien auflistet und das Log in ein frei auswählbares Ziel fortlaufend abspeichert.
Nach dem Backupvorgang kann man sich das Logfile anzeigen lassen und sieht eine Liste mit allen "bewegten" Dateien, also auch wenn Dateien oder Verzeichnisse verschoben oder umbenannt wurden.
Bei einem täglichen Backup wird täglich ein LOG erstellt. Kenne ich den exakten Dateinamen, kann ich die Logfiles nach dem Dateinamen durchsuchen lassen. Lese ich die Logs nach dem Backup (wenn es nicht zu viele Dateien sind) erkenne ich meistens, wenn beim "Arbeiten" etwas schief gelaufen ist.
Notfalls musst Du 1x ein Komplett-Backup machen und danach jeden Abend die Software starten, z.B. auf eine lokale Festplatte oder Du nutzt die Vorschaufunktion. Das Ganze kann auch über eine BAT-Datei die auf dem Desktop liegt.

Die Software heißt DirSync.

Gruß
BassFishFox
BassFishFox 22.05.2019 um 01:53:58 Uhr
Goto Top
Hi,

Das Dingens hier haben wir vor Ewigkeiten mal dezentral eingesetzt. Schau mal nach ob das Teil das abdecken kann was Du brauchst.

https://www.watchdirectory.net/

BFF
Lochkartenstanzer
Lochkartenstanzer 22.05.2019 aktualisiert um 04:32:01 Uhr
Goto Top
Moin,

Ein kleines skript, das jeden Tag läuft und eine sortierte Liste in eine Datei schriebt und dann das diff zum Vortag erstellt, sollte das Problem.lösen.

Das besteht unter bash z.B auf einen find, sort und diff als zweizeiler.

lks

PS: bash ist unter Windows 'nativ' mit dem WLS oder separat mit cygwin vergügbar.
LeeX01
LeeX01 22.05.2019 um 04:39:42 Uhr
Goto Top
Sollte mit diff aber auch in der Powershell klappen dank alias von compare-object.
Lochkartenstanzer
Lochkartenstanzer 22.05.2019 um 04:59:51 Uhr
Goto Top
Zitat von @LeeX01:

Sollte mit diff aber auch in der Powershell klappen dank alias von compare-object.

Natürlich.

geht i.d.R. mit jeder shell. bash ist halt meine Bevorzugte.

lks
LeeX01
LeeX01 22.05.2019 um 05:14:45 Uhr
Goto Top
in etwa so:
diff (gc .\1.txt) (gc .\2.txt) | ft InputObject, SideIndicator -AutoSize
emeriks
emeriks 22.05.2019 um 08:02:34 Uhr
Goto Top
Gibt es ein geeignetes Tool,
Das Tool, was Du suchst, nennt sich "Schreiben an Vorgesetzte" oder "Schreiben an die Geschäftsführung". Darin die Anforderungen definieren, welche von der IT umgesetzt werden müssen, damit Du den Produktivbetrieb jederzeit aufrecht erhalten kannst. Du bist doch verantwortlich dafür, oder? Denn, falls nicht, heißt das Tool "Ist mir egal".
schwierig wenn man nicht weiß, seit wann die Daten denn weg sind..
Das ist ja auch nicht notwendig. Eine Anforderung zum Wiederherstellen von Daten muss z.B. lauten "...wiederherstellen mit Stand vom ..." oder ".. die letzte bekannte Version wiederherstellen ...". Wenn die IT dann nicht in der Lage ist, in den Logs oder DB's den Zeitpunkt einer zuletzt bekannten Version einer Datei herauszufinden, dann ist das deren Problem. Dann kann sie sich in den Backups eben solange durchwurschteln, bis sie diese gefunden hat.
mylight
mylight 22.05.2019 aktualisiert um 09:09:20 Uhr
Goto Top
Meine Vorgesetzten und die IT interessieren solche Problemchen eines einzelnen Teams leider nicht.
Wenn man das meldet darf man erstmal ein Powerpoint zum Problem erstellen, Vortragen und dann
verschwindet alles in der Versenkung! Ich bin es daher gewohnt Probleme selbst anzugehen.

Die Prozesse in einem Großkonzern kann ich leider nicht ändern, für ein Restore muss man das Datum angeben,
hat man das nicht, dann kann man schon mal 2 Wochen auf den Restore warten (habe ich schon erlebt)
- die Zeit habe ich leider nicht.

Ich denke ich muss die Daten täglich spiegeln (wie Dilbert-MD) es auch beschrieben hat und dann nach jedem
Abgleich das Logfile des Jobs auswerten.
Aus Sicherheitsgründen kann ich aber die Daten nicht lokal auf meiner Festplatte haben.
Ich denke ich kann das auf einem virtuellen Windows-Server, den ich u.a. als Lizenzserver betreibe mit laufen lassen.
Werde es mit Robocopy probieren, das ist Windows Bestandteil - dann muss ich keine extra Fremdsoftware kaufen
und freigeben lassen (wieder ein langer Prozess).

Erstelle gerade eine Kopie des Teamlaufwerks - dann soll mir folgender Einzeiler jeden Abend eine Logdatei mit
den neuen+ geänderten+gelöschten Daten des Teamlaufwerks erstellen:

REM *** NEUE+GEÄNDERTE+GELÖSCHTE DATEIEN FINDEN (werden mit /MIR überschrieben)
SET SRC=\\..\… [Teamlaufwerk]
SET DEST=\\..\… [Spiegelung]
robocopy %SRC% %DEST% *.* /MIR /COPY:DT /NP /NDL /FFT /R:1 /W:1 /LOG:D:\MIRROR\log\del_inc_new%Date%.txt

back-to-topguter Nebeneffekt:

ich kann dann auch gleich die ungewollten Löschungen des letzten Tages beseitigen ohne bei der Hotline anzurufen.
Bin mal gespannt ob's wie gewünscht läuft, vielen Dank für Eure konstruktiven Vorschläge!
emeriks
emeriks 22.05.2019 aktualisiert um 10:01:23 Uhr
Goto Top
OK, wichtig ist eigentlich nur, dass Dir (Euch) geholfen ist.
Aber trotzdem, solltest Du das nochmal überdenken.
ich kann dann auch gleich die ungewollten Löschungen des letzten Tages beseitigen
Wer löscht denn da? Wem musst Du ggf. auf die Finger kloppen oder schlimmeres? Wenn Du das nicht mit "einfachen Mitteln" herausbekommst, dann lass das für ne Weile durch die IT überwachen. Und dann das regeln.
"In meinem Haus brennt öfters mal aus unbekanntem Grund ein Zimmer ab. Aber jetzt ist gut. Ich mache regelmäßig Fotos und kann das Zimmer immer wieder herrichten, wie es vorher war." --> Wäre das Deine Lösung für dieses Problem? Oder würdest Du nicht doch eher die Brandursache herausfinden wollen?
für ein Restore muss man das Datum angeben,
Dann tu das doch. Dafür ist es doch nicht wichtig, zu wissen, wann eine Datei gelöscht wurde.
Wenn Daten am 01.05. zuletzt geändert werden und am 10.05. gelöscht, dann lass sie "mit Stand vom 02.05." wiederherstellen.

Am Rande:
wir haben Windows Clients, das zentrale Teamlaufwerk liegt auf einem Netzwerkserver
(ca. 100Gb, 10.000 Verzeichnisse, 180.000Dateien), auf die Konsole des NetApp Servers habe ich keinen Zugriff.
Ein NetApp vFiler mit CIFS-Emulation? Diese unterstützen "Vorherige Dateien". Lass von der IT regelmäßig Snapshots erstellen und für "Vorherige Dateien" verfügbar einstellen. Dann kommst Du darüber ran.
mylight
mylight 22.05.2019 um 10:42:10 Uhr
Goto Top
Wer löscht denn da? Wem musst Du ggf. auf die Finger kloppen oder schlimmeres? Wenn Du das nicht mit "einfachen Mitteln" herausbekommst, dann lass das für ne Weile durch die IT überwachen. Und dann das regeln.
Es ist ja nicht so, dass ständig etwas gelöscht wird, oft sind es die Probleme im Windows Explorer, da ist schnell mal ein ganzes Verzeichnis verschoben ohne dass man es bemerkt, aber im alten Verzeichnis ist es dann erstmal weg. Für eine Überwachung braucht man schon konkret einen Verdacht auf Absicht und man muss den Betriebsrat einschalten - ich will den Mitarbeitern nichts böses unterstellen.

für ein Restore muss man das Datum angeben,
Dann tu das doch. Dafür ist es doch nicht wichtig, zu wissen, wann eine Datei gelöscht wurde.
Wenn Daten am 01.05. zuletzt geändert werden und am 10.05. gelöscht, dann lass sie "mit Stand vom 02.05." wiederherstellen.
Ja stimmt, aber nach ein paar Monaten kann ich das Datum der letzten Änderung nur noch raten. Entweder ich bin zu spät und die Datei war schon weg oder ich habe doch noch nicht den letzten Stand erwischt - dann hilft nur der lange Restore-Prozess mit Wartezeit.

Ein NetApp vFiler mit CIFS-Emulation? Diese unterstützen "Vorherige Dateien". Lass von der IT regelmäßig Snapshots erstellen und für "Vorherige Dateien" verfügbar einstellen. Dann kommst Du darüber ran.
Snapshots sind für diesen Server leider nicht verfügbar (Servicelevel Silver)
Th0mKa
Th0mKa 22.05.2019 um 14:16:21 Uhr
Goto Top
Zitat von @mylight:

Snapshots sind für diesen Server leider nicht verfügbar (Servicelevel Silver)

Das ist ja eine willkürliche Festlegung und läßt sich ändern.

/Thomas
1st1
Lösung 1st1 23.05.2019 aktualisiert um 12:06:51 Uhr
Goto Top
Falls du das gleich als Backupscript nutzen würdest, um täglich die Änderungen von Quelle an immer das selbe Ziel zu kopieren, würde das so gehen:

@echo off
rem backup_mit_report.cmd
rem quelle, ziel und betriebssystemsprache anpassen
rem quelle und ziel NIEMALS miteinander vertauschen!!!
rem ungetestet, auf eigenes risiko!

rem kein "\" am Ende der Pfade!
set quelle=\\deinserver\share
set ziel=\\deinbackupserver\share

set sprache=deutsch
rem set sprache=englisch

set logdatei=%date%_robocopy-report.txt
set geloescht=%date%_geloeschte_dateien.txt
set neue=%date%_neue_dateien.txt
set geaendert=%date%_geaenderte_dateien.txt
set fehler=%date%_fehler.txt

set parameter=/R:1 /W:0 /mir /NP /LOG:%logdatei%

rem Backup starten
robocopy %parameter% %quelle% %ziel%
goto sprache

rem Auswertung
:englisch
start type %logdatei% | find "Newer" > %geaendert%
start type %logdatei% | find "New Dir" > %neue%
start type %logdatei% | find "New File" >> %neue%
start type %logdatei% | find "*Extra Dir" > %geloescht%
start type %logdatei% | find "*Extra File" >> %geloescht%
start type %logdatei% | find "Error" >> %fehler%
goto ende

:deutsch
start type %logdatei% | find "Neuer" > %geaendert%
start type %logdatei% | find "Neues Verz" > %neue%
start type %logdatei% | find "Neue Datei" >> %neue%
start type %logdatei% | find "*Extra Verz." > %geloescht%
start type %logdatei% | find "*Extra Datei" >> %geloescht%
start type %logdatei% | find "Fehler" > %fehler%
goto ende

:ende
echo Backup fertig.
DankeFuerNichts
DankeFuerNichts 26.05.2019 aktualisiert um 14:12:36 Uhr
Goto Top
Hallo,

ich verstehe das Problem an sich, aber....
Egal welche Lösung Sie für das Problem haben, es geht nicht ohne die GF und die IT ins Boot zu holen.
Ein tägliches Skript welches eine Kopie der Verzeichnisse lokal speichert und dann mit dem Vortag vergleicht erzeugt Netzwerktraffic und ist als Sicherheitsrisiko einzustufen. Vielleicht werden dadurch Prozesse gestört die Ihnen bis jetzt Unbekannt sind (Monitoring, Backup, DFS). Es ergeben sich daraus Probleme für die EDV. Mich wundert sowieso dass Sie die nötigen Rechte haben um auf alle Verzeichnisse zuzugreifen. Davon mal abgesehen. Ich kenne allerdings auch Ihre Position in der Firma nicht. Wenn Sie dementsprechend hoch gestellt sind, haben Sie bestimmt auch Einfluss auf die GF und IT um das Problem an der Wurzel zu packen und eine saubere Lösung zu finden.

Sie wollen bestimmt nicht daran schuld sein wenn die EDV brennt und sich ihr Dienstleister damit rausreden kann dass ja bei Ihnen täglich dieses Skript läuft und desshalb wichtige Dateien nicht wiederhergestellt werden konnten weil seit dem Sie dieses Skript läuft das normale Backup nicht mehr läuft oder der IT-Dienstleister ewigkeiten nach einer Lösung sucht, dessen Problem Sie heraufbeschworen haben. Wenn das die GF mitkriegt hatten Sie evtl. Mal einen Job, weil Sie damit weit über Ihre Kompetenzen hinausarbeiten.

Aber hier einige Lösungsvorschläge für Ihre IT:
Eine Lösung nennt sich VSS. Volumenschattenkopie. Dabei wird mehrmals täglich jede geänderte oder gelöschte Datei seperat (nur das System hat darauf Zugriff) abgesichert und kann innerhalb von Sekunden wiederhergestellt werden. Abhängig des Festplattenplatzes kann man so bis zu 2 Jahre Daten wiederherstellbar vorhalten. (Benefit daraus wäre ein zusätzlicher Krypto-Trojaner-Schutz). Diese Dateien können dann auch durch Sie wiederhergestellt werden. Und zwar innerhalb von max. 10 Minuten suche weil Sie auf jede Version der Datei zugriff haben.

Das läuft dann so: Anfang des Jahres war die Datei noch nicht da, am 31.03. war sie geändert, am 31.02 war sie geändert, am 31.01. war es noch die alte, am 6.02. war es die neue, am 04.02 war es die alte, am 05.02 war es die neue. Aha. ich brauche die Version vom 04.02. Kopie&Paste und fertig. Und das vom normalen Windows-Explorer aus. Ungefähr in der Geschwindigkeit wie ich diesen Abschnitt des Textes hier verfasst habe. Sie sagen selber es kommt nicht so oft vor. Wenn es 10 mal im Jahr passiert haben Sie dafür ca. 1 Stunde im Jahr geopfert.

Wenn Sie nicht Suchen wollen:
Die IT kann auch die Verzeichnisüberwachung aktivieren (das Aktivieren dauert ca. 2 Stunden) und Ihnen dann sagen wann und vor allem von wem die Datei gelöscht oder verändert wurde.
Auch wichtig wäre jedem das Recht zu entziehen Dateien zu löschen oder zu ändern. Außen denjenigen die wissen was sie tun oder schlichtweg dafür gerade stehen wenn etwas nicht stimmt.

Dazu evtl. wäre Dateiversionierung Ihrerseits eine Lösung:
Eine veränderte Datei kann/soll so unter einem neuen Namen gespeichert werden. Z.b
Kunde XY_Projekt XY_Anschreiben_V1.00. der Kollege der was ändert speichert dann unter *V1.01.
Sie räumen dann halbjährlich die alten Dateien auf und verschieben sie auf ein Archivlaufwerk.
Das wäre eine professionelle Lösung. Kein Skript gefummel wo evtl. Nebenwirkungen nicht absehbar sind.

Außerdem wurde erwähnt das Sie nur Service-Level "Silber" haben. Überlegen Sie bitte zusätzlich wieviel Zeit Ihrerseits in eine Frickellösung investiert werden muss, damit das anständig und vor allem zuverlässig läuft.

Ans Herz möchte ich Ihnen auch noch legen: Wenn die IT Änderungen vornimmt uns Sie das nicht mitbekommen läuft das Skript evtl. ammok und zerstört Daten anstatt das zu tun was es eben soll.
mylight
mylight 26.05.2019 aktualisiert um 22:25:19 Uhr
Goto Top
Danke für die Hinweise, aber jede Organisation tickt eben anders:
ich bin bei uns Owner des Shares und damit habe ich Vollzugriff um Zugriffsrechte vergeben zu können.
Die sind schon so gewählt, dass nicht jeder alles kann - aber ich kann auch nicht alles nur read-only setzen, dann kann die Mannschaft nicht ohne mich arbeiten.
Der Server wird zentral mit Backup-Service (aber ohne Shadow-Copies) bereitgestellt, für die Rechtevergabe ist ein Admin des Fachbereichs zuständig und somit ist das einer meiner Jobs.
Von Shadow-Copies bin ich selbst nicht begeistert: wer sich nicht 100% auskennt überschreibt damit leicht ganze Strukturen, daher finde ich es ganz gut dass dieser Service nicht aktiv ist. Und man muss erstmal wissen dass Daten fehlen bevor die Shadows verfallen.
Da schaue ich mir nun lieber jeden Morgen mein Log 30sek an und ich weiß ggf. sofort Bescheid.
Daten auf andere Server zu kopieren ist auch nicht verboten (lokal wäre in der Tat ein Risiko aber beide Server stehen im RZ).
Der Job ist offiziell gemeldet und läuft um 18h, die IT ist erst später aktiv. Die 100Gb mit Robocopy erstmalig zu kopieren hat keine 1/2 Stunde gedauert, nun läuft nur noch der tägliche Abgleich (unter 3 Minuten) - und meist werden nur um die 200Mb kopiert.
Robocopy kopiert ja (ich nehme die gute, alte deutsche Version XP10 aus dem Win2003 Reskit) nur was nötig ist - ich bin nun sehr zufrieden mit dem Log, genau das habe ich gesucht.

Die Frickellösung (die robocopy Batch zu bauen) hat jetzt wirklich nicht lange gedauert, es gibt ja auch keine fertige, kaufbare Lösung hierfür.
Der User unter dem das Script läuft hat auf der Quelle nur Leserechte, da sollte die Gefahr nicht so gross sein.

Danke auch an 1ST1 - das Log mit einer Pipe an find in geänderte (Neuer)/ gelöschte (Extra) und neue (Neue Datei) Dateien aufzusplitten ist eine gute Idee! Werde ich mal probieren - wenn mal Zeit ist..
Dilbert-MD
Dilbert-MD 27.05.2019 um 10:32:56 Uhr
Goto Top
Zitat von @DankeFuerNichts:
Auch wichtig wäre jedem das Recht zu entziehen Dateien zu löschen oder zu ändern. Außen denjenigen die wissen was sie tun oder schlichtweg dafür gerade stehen wenn etwas nicht stimmt.

Das kann schwierig werden, wenn mehrere Mitarbeiter an einem Projekt mitarbeiten oder Zuarbeit leisten und wenn ein Projekt von der Vorbereitung in den Entwurf und später in die Ausführung übergeht und wenn Zuarbeit (anderer Firmen oder anderer Abteilungen) aktualisiert werden müssen und z.B. veraltete Zeichnungen durch aktuelle ersetzt werden, und die alten nur noch im Mailarchiv aufbewahrt werden, damit keiner mit veralteten Plänen arbeitet.

Ans Herz möchte ich Ihnen auch noch legen: Wenn die IT Änderungen vornimmt uns Sie das nicht mitbekommen läuft das Skript evtl. ammok und zerstört Daten anstatt das zu tun was es eben soll.

Dafür (bzw. dagegen) werden dem User, der das Script ausführt nur Leserechte auf dem Share eingerichtet. Einfach am PC des Nutzers einen zusätzlichen User einrichten, der nur sehr eingeschränkte Rechte besitzt. Dieser kann durch "Benutzer wechseln" statt Abmelden, auch im Hintergrund das Script ausführen.

Und wer soll am Jahresende putzen?

Gruß