So löschen Sie alle lokalen TimeMachine-Snapshots

Ich habe die automatische Sicherung aktiviert und lokale TimeMachine-Snapshots nehmen viel Speicherplatz in Anspruch. Dieser Speicherplatz wird in den Datenträgerinformationen als löschbar aufgeführt, kann jedoch erst verwendet werden, wenn das System entscheidet, ihn freizugeben. Wie kann ich TimeMachine zwingen, diese Snapshots zu löschen?

Begrüßen Sie AskDifferent. Obwohl es völlig in Ordnung ist, sowohl die Frage als auch die Antwort zu posten, stellen Sie bitte sicher, dass sich die Frage tatsächlich wie eine Frage liest, z. B. mit dem zu lösenden Problem beginnt, tatsächlich eine Frage enthält, erklärt, warum nicht das ist, wonach Sie suchen tmutil thinlocalsnapshotsusw.
Der Thin-Befehl geht so direkt auf dieses Bedürfnis ein, dass ich auf diese Frage in einer spezifischen Antwort auf die Frage nach dem Freigeben von Speicherplatz verweisen werde, der von diesen „eingenommen“ wird. Beachten Sie, dass das System diese automatisch löscht, sodass dieser Speicherplatz nicht freigegeben werden muss
@bmike In meinem Fall musste ich den Speicherplatz im Voraus freigeben, da ein Software-Installationsprogramm mich nicht zulassen würde, eine Installation auszuführen, es sei denn, es sind 50 GB freier Speicherplatz vorhanden. Ich denke, thinlocalsnapshotswürde genauso gut funktionieren.
+1 aus diesem Grund. Ich würde nicht erwarten, dass viele Installer den löschbaren Speicherplatz überprüfen und darauf vertrauen, dass er nach dem Start schneller freigegeben wird als er geschrieben hat. Ich bin froh, dass Sie ein paar Optionen haben.

Antworten (5)

Führen Sie im Terminal dieses kleine Skript aus:

for d in $(tmutil listlocalsnapshotdates | grep "-"); do sudo tmutil deletelocalsnapshots $d; done

Das Skript listet alle Snaphosts auf und löscht sie alle in einer Schleife.

Das hat gerade 190 GB auf meinem Rechner freigegeben ...
Gibt es eine Möglichkeit, die Größe dieser Backups zu überprüfen, bevor ich sie lösche?

Wenn Ihnen der Speicherplatz nicht ausgeht (5 GB frei), lassen Sie diesen Speicherplatz einfach zuweisen, da es keinen Nachteil gibt, mit dem Löschen von Dateien zu warten, bis Sie Speicherplatz benötigen.

Davon abgesehen, wenn Sie sich entscheiden, Backups präventiv zu löschen, ziehe ich es vor, das System anzuweisen, Speicherplatz freizugeben. Wenn Sie wissen, dass Sie 50 GB frei haben, ändern Sie die 5 unten in 50 und dann wird das System über alle lokalen Snapshots iterieren und sie in der vom System definierten Reihenfolge beschneiden.

tmutil thinlocalsnapshots / $(echo "5 * 1000000000" | bc) 2

Die einzige Iteration, die ich tun würde, besteht darin, zu sehen, wie viele APFS-Volumes Sie haben, und dann vielleicht alle gemounteten auszudünnen.

Hier ist ein netter Thread, der die Dringlichkeit erklärt - 2 funktioniert gut für meine Bedürfnisse, aber die Handbuchseite erklärt, dass es 4 Dringlichkeitsstufen gibt. Wenn Sie also spezielle Bedürfnisse haben, beobachten Sie den IO und die Leistung während des Ausdünnens und experimentieren Sie mit kleineren Snapshots zum Ausdünnen.

Auf welcher Grundlage sind 5 GB kostenlos die Schwelle? Ich bin ein Fotograf, der zum Beispiel 128-GB-Flashkarten verwendet. Wenn ich die Karte mit einer Fotosession fülle und in Lightroom importiere. Ich brauche 128 GB plus alles, was Lightroom für seine Vorschauen verwendet. Wenn OSX diese Snapshots automatisch löscht, wenn ich meinen Import nicht anderweitig unterbringen kann, dann ist das in Ordnung. Aber wenn nicht, möchte ich lieber, dass die Schnappschüsse nicht da sind. Gibt es eine Möglichkeit, Time Machine mitzuteilen, wie viel Speicherplatz gelassen werden soll?
@VictorEngel Es ist fast genug, um die meisten wichtigen Betriebssystem-Upgrades zu installieren, also fange ich dort an. Es ist auch nicht so groß, dass es massiv ist, und so klein, dass es vernachlässigbar ist. Dies ist löschbarer Speicher, Sie müssen meiner Erfahrung nach fast nie darum bitten, dass dieser freigegeben wird. Vielleicht wäre eine Frage zu Ihrer Gesamtsituation hilfreich. Es sei denn, Sie haben ein riesiges Laufwerk - es könnte für Sie sinnvoll sein, 128 GB gar nicht erst auf das Boot-Volume zu legen ...
128 GB sind heutzutage keine große Menge. Beachten Sie, dass meine Kamera eine Canon 5DS ist, die RAW-Dateien enthält, die häufig jeweils 80 MB überschreiten. Wenn ich bei einer Veranstaltung Fotos mache, möchte ich diese auf jeden Fall auf einer lokalen SSD verarbeiten. Das ist normal, kein Grenzfall. Nachdem ich eine Reihe von Bildern verarbeitet habe, verschiebe ich sie auf eine externe Festplatte (derzeit 5-TB-Laufwerk, das zu 80 % voll ist). Ich habe die 128-GB-Wechselmedien erwähnt, um darauf hinzuweisen, dass dies eine normale Größe für eine aktive Dateneinheit ist. Diese Karten sind in größeren Kapazitäten erhältlich, aber 128 GB sind für mich ausreichend. Und dann gibt es Video .... PS, mein Boot-Volume ist 1 TB SSD

Ich habe zufällig festgestellt, dass das Öffnen des Fensters "Speicherverwaltung" (Cmd-U) in "Systeminformationen" die Schnappschüsse der lokalen Zeitmaschine freigab und den Speicherplatz verfügbar machte.

Ich weiß nicht, ob dies ein offiziell unterstützter Weg ist.

Ich denke, das hat bei mir funktioniert. Der Snapshot ist immer noch da, wenn ich tmutil listlocalsnapshots / mache, aber der Speicherplatz wurde freigegeben ...
Dies hat auch für mich funktioniert. Ich habe mehrere große Dateien mit GrandPerspective gelöscht, aber es wird immer noch viel Speicherplatz von verschiedenen Dateien verbraucht. Das Öffnen des Fensters "Verwalten" zwingt das System irgendwie dazu, Dateien zu indizieren und den "richtigen" freien Speicherplatz wiederzugeben.
Dies hat auch für mich funktioniert. Ich hatte einige Snapshots mit den obigen Ratschlägen manuell ausgedünnt, aber das hat mein System dazu gebracht, die Menge an freiem Speicherplatz sofort zu erkennen. Danke!

Schritt 1:

Geben Sie im Terminal den folgenden Befehl ein, um alle Backup-Snapshots aufzulisten:

tmutil listlocalsnapshots /

Sie erhalten eine Liste aller Snapshots im Stammverzeichnis ( /).

Schritt 2:

Löschen Sie jeden Schnappschuss, indem Sie den folgenden Befehl + Datum des entsprechenden Schnappschusses eingeben:

sudo tmutil deletelocalsnapshots <snapshot_date>

Beispiel:

sudo tmutil deletelocalsnapshots 2020-09-26-143409

Bonus-Tipp:

Denken Sie daran, dass Sie jederzeit Hilfe zu einem Befehl im Terminal erhalten können, indem Sie den Root-Befehl -hoder eingeben -help.

Geben Sie ein tmutil -help, um alle Befehle des Time Machine-Dienstprogramms und Gebrauchsanweisungen anzuzeigen.

Der noch elegantere Weg, alle Snapshots zu löschen:

for x in $(tmutil listlocalsnapshots /);do
sudo tmutil deletelocalsnapshots $(cut -d '.' -f 4 <<<"$x")
done
Wie unterscheidet sich dies von apple.stackexchange.com/a/340906/9058 ?
Nur nach Syntax.
Nicht ganz. deletelocalsnapshots macht etwas anderes, wenn es kein Argument erhält.