diff --git a/tools/heim-abholen.ps1 b/tools/heim-abholen.ps1 index 2be241e..951e2a8 100644 --- a/tools/heim-abholen.ps1 +++ b/tools/heim-abholen.ps1 @@ -126,6 +126,44 @@ Gut "nach $zVoll" # Quellordner angleichen und dort geloeschte Dateien auch hier loeschen. Genau # das soll nicht passieren. +# -- Sind es ueberhaupt Dateien, oder nur Platzhalter? -------------------------- +# +# DAS HAT EINEN RECHNER LAHMGELEGT. Der Nextcloud-Client kann "virtuelle +# Dateien" anlegen: im Ordner steht dann ein Verweis mit der richtigen GROESSE, +# aber ohne Inhalt. Wer so eine Datei anfasst, loest einen Download aus -- und +# robocopy fasst alle an. Bei fuenf Archiven waren das 1,7 GB auf einmal, +# waehrend Windows blockierte. +# +# Erkennbar an zwei Attributen: +# 0x001000 OFFLINE -- Inhalt liegt nicht hier +# 0x400000 RECALL_ON_DATA_ACCESS -- wird beim Zugriff nachgeladen +# +# Lieber abbrechen und es sagen, als die Maschine in die Knie zwingen. + +Schritt 'Sind es echte Dateien?' +$platzhalter = @(Get-ChildItem $qVoll -File -ErrorAction SilentlyContinue | + Where-Object { $_.Name -match '\.(tar|db)\.gz$' -and ($_.Attributes -band 0x401000) }) +if ($platzhalter.Count) { + Schlecht "$($platzhalter.Count) von $(@(Get-ChildItem $qVoll -File | Where-Object { $_.Name -match '\.(tar|db)\.gz$' }).Count) Archiven sind nur PLATZHALTER." + Write-Host '' + Warn 'Der Nextcloud-Client hat "virtuelle Dateien" aktiviert: im Ordner steht' + Warn 'ein Verweis mit der richtigen Groesse, aber ohne Inhalt. Sie zu kopieren' + Warn 'wuerde alles auf einmal herunterladen und den Rechner blockieren.' + Write-Host '' + Warn 'Im Explorer sieht man es am WOLKEN-Symbol neben der Datei; ein gruener' + Warn 'Haken heisst "liegt wirklich hier". Windows 11 zeigt ausserdem an, wenn' + Warn 'es gerade etwas nachlaedt.' + Write-Host '' + Warn 'Im Nextcloud-Client: Einstellungen -> Konto -> Drei-Punkte-Menue' + Warn ' -> "Virtuelle Dateien deaktivieren"' + Warn 'Danach laedt er im Hintergrund alles herunter -- mit Fortschritt und' + Warn 'unterbrechbar. Erst wenn das durch ist, hat diese Abholung Sinn.' + Write-Host '' + Schlecht 'Abgebrochen. Es wurde nichts kopiert und nichts geloescht.' + exit 1 +} +Gut 'ja, alle Archive liegen wirklich lokal' + Schritt 'Kopieren (nur neue, nichts loeschen)' $zaehlen = { @(Get-ChildItem $zVoll -File -ErrorAction SilentlyContinue | Where-Object { $_.Name -match '\.(tar|db)\.gz$' }).Count }