Jump to content

Script / "gesperrte" Dateien generell; speziell Robocopy


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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!

Link zu diesem Kommentar

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?

Link zu diesem Kommentar

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!

 

Link zu diesem Kommentar

@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?

Link zu diesem Kommentar

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 :)

 

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...