Finanzamt 76 Geschrieben 26. Februar 2018 Melden Teilen Geschrieben 26. Februar 2018 Moinmoin, Vorab: Um Scripts geht es nur am Rande ... bzw. um die Frage, wie wir beim Scripten damit umgehen, dass Dateien "irgendwie" gesperrt sind. Bsp: Ziele meiner Datensicherung sind revolvierend drei interne und drei externe Devices und ich verwende Robocopy wählbar inkrementell /XO oder komplett /MIR, alles wird protokolliert und ich kann angeben, ob nach der Sicherung Shutdown ausgelöst wird oder nicht. Fazit: Alles bestens, wäre da nicht meine von Zeit zu Zeit mich ereilende Schusseligkeit. U.A. von der Datensicherung erfasst wird ein VeraCrypt-Container. Habe ich den Container nicht vor der Sicherung dismounted, bleibt RoboCopy bei dauerhaften Versuchen stehen, die Datei ins Ziel zu schaufeln. Habe ich z.B. eine OpenOffice-Datei offen (was angesichts eines möglichen Shutdowns genauso schusselig ist), stört das Robocopy nicht und nimmt halt die in der Quelle gespeicherte Datei. Weiß wer von Euch, ... wie ich Robocopy dazu kriege, einfach nur die in der Quelle (zuletzt) gespeicherte Version ins Ziel zu befördern? ... eine Alternative? ... was ich mal checken könne? Lösungen wie Timer laufen lassen, "wenn zu lange", "dann Abbruch", "dann Protokoll", "dann Neustart mit exclude" oder eine Lösung mit Schattenkopie (generell verwenden, das "Original" excludieren, Schattenkopie im zweiten Aufruf kopieren lassen) fühlen sich für mich was nach BastelEi an. Dankeschön und Gegrüßt! Zitieren Link zu diesem Kommentar
tesso 375 Geschrieben 26. Februar 2018 Melden Teilen Geschrieben 26. Februar 2018 Schau dir mal die Parameter /R und /W an. vor 13 Minuten schrieb Finanzamt: Weiß wer von Euch, ... wie ich Robocopy dazu kriege, einfach nur die in der Quelle (zuletzt) gespeicherte Version ins Ziel zu befördern? ... eine Alternative? ... was ich mal checken könne? Den Satz verstehe ich nicht. Wenn die Datei blockiert ist, wie soll sie dann kopiert werden? Zitieren Link zu diesem Kommentar
Finanzamt 76 Geschrieben 26. Februar 2018 Autor Melden Teilen Geschrieben 26. Februar 2018 Klar, mit /R UndOder /W lässt sich verhindern, dass die Sache bis zum ersten Guck am nächsten Morgen durchläuft. Aber gesichert ist die Datei dann nicht. Angenommen, Du hast tagsüber viel mit der Datei / dem Containerinhalt gemacht, sie/ihn auf der Festplatte immer wieder gespeichert und im Veracyptfall vergessen, zu dismounten: Dann ist auf der Platte ein aktuellerer Stand als auf der gestrigen Sicherung. Ich will also definitiv die "blockierte" Datei kopieren. Dass "blockiert" nicht "blockiert" ist, es also durchaus Unterschiede gibt, zeigt schon die Schattenkopiegeschichte. Auch wenn Du z.B. eine Textdatei geöffnet hast und von einer anderen Kiste aus die gleiche Datei öffnest, bekommst Du i.d.R. die Alternativen angeboten, die Datei RO oder als Kopie zu öffnen. In beiden Fällen wird aber auf das zugegriffen, was unabhängig vom Bearbeitungsstand im Speicher zuletzt auf die Platte geschrieben wurde. Und darum geht es mir. Gegrüßt! Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 26. Februar 2018 Melden Teilen Geschrieben 26. Februar 2018 Benutze eine Datensicherungssoftware, die einen VSS-Snapshot erzeugen kann. Allerdings kann es dann sein, dass die Datei danach inkonsistent ist. Robocopy ist keine Backup-Software. 1 Zitieren Link zu diesem Kommentar
mwiederkehr 382 Geschrieben 26. Februar 2018 Melden Teilen Geschrieben 26. Februar 2018 Wenn man Robocopy mit einem Tool für Schattenkopien kombiniert, kann man geöffnete Dateien sichern: https://rakhesh.com/windows/how-to-backup-open-pst-via-robocopy/ Wie konsistent derart gesicherte gemountete Veracrypt-Container sind, ist eine andere Frage... Zitieren Link zu diesem Kommentar
testperson 1.707 Geschrieben 26. Februar 2018 Melden Teilen Geschrieben 26. Februar 2018 Hi, ich hatte seinerzeit mal ein Script gebaut um erst per VSS einen Snapshot zu erstellen und dann aus dem Snapshot zu kopieren. Falls Interesse da ist, suche ich mal "intensiver" nach dem Script. Gruß Jan Zitieren Link zu diesem Kommentar
Finanzamt 76 Geschrieben 26. Februar 2018 Autor Melden Teilen Geschrieben 26. Februar 2018 @Zahni: Klar, da stimme ich Dir zu - Robocopy ist keine Backup-Software. Wenn es allerdings ausschließlich darum geht, Dokumente zu sichern, ist man ja auch vom "Backup"-Begriff einiges entfernt. Und wenn Du darauf beschränkt was gegen den Hauptfehler (Datei selbst zerdeppern) unternehmen willst, haben "einfache" Kopien für mich den entscheidenen Vorteil, ganz problemlos wieder an die letzte "noch in Ordnung" Datei zu kommen. (Ausreichende Anzahl revolvierender Ziele vorausgesetzt). Speziell in meinem Fall habe ich den Wald vor lauter Bäumen nicht gesehen: Wenn die Sicherung am offenen Container hängen bleibt (bleiben kann), sollte ich mich darum kümmern, das das Dingen geschlossen wird und mit ...\veracrypt /d gleich zu Beginn des Scriptes dafür sorgen, das Robocopy nix zu meckern hat. Dann gibt es auch keine Probleme mit Inkonsistenzen. Auf der anderen Seite kann ich mir vorstellen, dass z.B. andere "Containerartige" Dateien (z.B. .PST) ähnliche Probleme verursachen können. Und warum eine auf Platte gespeicherte Datei das eine Mal kopiert oder schreibgeschützt geöffnet werden kann, bzw. wann eine Datei nur auf Dateiebene und wann auf mehr (was eigentlich?) gesperrt ist - das ist evtl. was für lange Winterabende und vor allem was für einen anderen Thread. Euch allen vielen Dank und einen richtig runden Tag, Gegrüßt! PS. @Testperson: Auch wenn ich die Shadowsachen für mein (Ex-) Prob ausgeschlossen hatte, wäre ich sehr daran interessiert. Und weil ich denke, dass ich diesbezüglich nicht der einzige bin: könntest Du es (vlt. in einem neuen Thread) posten? Zitieren Link zu diesem Kommentar
testperson 1.707 Geschrieben 26. Februar 2018 Melden Teilen Geschrieben 26. Februar 2018 Schau es dir / Schaut es euch erstmal an, dann kann man sehen, ob ein Thread dafür lohnt ;) #Variabeln definieren / initialisieren $DatenLW = "C" $SnapshotPfad = $DatenLW + ":\1_Snapshot" $Sync = "C:\install\sync\sync.exe" #https://technet.microsoft.com/de-de/sysinternals/bb897438.aspx $CMD = "$env:ComSpec" #Vorsichtshalber Daten aus Cache auf Festplatte schreiben Write-Host "Festplatten Cache auf Disk schreiben.." Start-Process $Sync $DatenLW -Wait #VSS Snapshot per WMI Objekt erstellen Write-Host "VSS Snapshot von Laufwerk " $DatenLW ":\ erstellen.." $vss1 = (gwmi -List Win32_ShadowCopy).Create(($DatenLW + ":\"), "ClientAccessible") $vss2 = gwmi Win32_ShadowCopy | ? { $_.ID -eq $vss1.ShadowID } #VSS Snapshot mounten und im Dateisystem bereitstellen Write-Host "VSS Snapshot unter " $SnapshotPfad " bereitstellen.." $dir = $vss2.DeviceObject + "\" $Schalter = "/c mklink /d " + $SnapshotPfad + " " + $dir Start-Process $CMD $Schalter -Wait #Kopiervorgang #Snapshot löschen und Link entfernen Write-Host "Löschen des VSS-Snapshot.." "vssadmin delete shadows /Shadow=""$($vss2.ID.ToLower())"" /Quiet" | iex $Schalter = "/c rmdir " + $SnapshotPfad Start-Process $CMD $Schalter -Wait P.S.: Das waren recht frühe Schritte im Bereich PowerShell; Es wurde viel zusammengegooglet; Man könnte es sicherlich eleganter lösen :) Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.