Wie kann ich alte Backups manuell löschen, um Speicherplatz für Time Machine freizugeben?


224

Ich verwende eine Time Capsule zum Sichern und möchte nun, dass das Laufwerk Daten von einem zusätzlichen Mac sichert. Das Laufwerk ist jedoch mit alten Backups von Mac 1 gefüllt. Für das Backup von Mac 2 steht einfach nicht genügend Speicherplatz zur Verfügung.

Ich erhalte diese Fehlermeldung, wenn Time Machine backup ausgeführt wird:

Time Machine konnte die Sicherung nicht abschließen. Diese Sicherung ist zu groß für die Sicherungsdiskette. Das Backup erfordert 28,68 GB, es stehen jedoch nur 626,2 MB zur Verfügung.

Time Machine benötigt neben dem für das Speichern von Sicherungen erforderlichen Speicherplatz auch Arbeitsspeicherplatz auf dem Sicherungsdatenträger. Öffnen Sie die Time Machine-Voreinstellungen, um einen größeren Sicherungsdatenträger auszuwählen, oder verkleinern Sie die Sicherung, indem Sie Dateien ausschließen.

Ich weiß, dass Time Machine selbst alte Backups entfernen kann, wenn mehr Speicherplatz benötigt wird. In diesem Fall werden jedoch keine Mac 1-Backups entfernt, um Platz für Mac 2 zu schaffen.

Die Frage ist, wie mache ich das manuell?


3
Angesichts der günstigen externen Laufwerke wäre ich versucht, eines zu kaufen und es für Ihre zusätzliche Maschine zu verwenden. Ich bevorzuge die Elemente: amazon.com/Western-Digital-Elements-External-WDBAAU0010HBK-NESN/…
james.garriss

2
@ james.garriss guter Punkt :) Allerdings muss ich noch Laufwerke in meiner Zeitkapsel tauschen :)
Jesper Rønn-Jensen

1
Weiß jemand, ob es eine Möglichkeit gibt (ohne ein Skript zu schreiben), TM zu bitten, nur 1 Backup pro Monat für Backups zu speichern, die älter als 1 Jahr sind?
Gamov

2
Können Sie nicht zwei verschiedene Partitionen auf Ihrer TM-Festplatte erstellen und für jeden Mac eine andere Partition auswählen?
Pierre Watelet

Antworten:


235

Gehen Sie vorsichtig mit sudo um und stellen Sie sicher, dass Sie die richtigen Mac-Dateien auswählen, da der folgende Befehl weder rückgängig gemacht noch bestätigt wird:

sudo tmutil delete /Volumes/drive_name/Backups.backupdb/old_mac_name

Der Befehl sudo benötigt Ihr Kennwort (und es wird nicht auf dem Bildschirm angezeigt. Geben Sie es einfach ein und halten Sie an, um sicherzustellen, dass Sie die richtigen Dateien datieren, bevor Sie die Eingabetaste drücken). Wenn Sie sicherer sein möchten, können Sie zuerst einen Snapshot zum Löschen auswählen, um sicherzustellen, dass der Befehl wie beabsichtigt funktioniert. Dies ist hilfreich, da das Bereinigen einiger größerer Sicherungssätze Stunden dauern kann und Sie den Mac davon überzeugen möchten, dass der richtige Informationsspeicher gelöscht wird.

Sie können das tmutilTool verwenden, um Sicherungen nacheinander zu löschen.

sudo tmutil delete /Volumes/drive_name/Backups.backupdb/mac_name/YYYY-MM-DD-hhmmss

Da dies tmutilmit Lion eingeführt wurde, funktioniert es nicht mit früheren Betriebssystemversionen.

Wenn Sie das aktuelle Sicherungsverzeichnis abrufen möchten (es können mehrere Ziele definiert werden, und nur eines ist "aktuell")

sudo tmutil machinedirectory

4
Lief wie am Schnürchen. Ich hatte alte Backups, die riesig waren und aufgrund von Festplattenänderungen nicht mehr mit dem ursprünglichen Zeitmaschinensatz verbunden waren. Ich konnte sie nicht mit sudo rm (was verrückt ist) löschen, aber das hat den Trick getan. Vielen Dank!
David Pisoni

2
@drfrogsplat ja, aber wenn Sie mit alten Backups arbeiten, ist der ursprüngliche Mac normalerweise tot. In meinem Fall versuche ich, Speicherplatz auf meinem Sicherungslaufwerk freizugeben, damit ich damit einen neuen Mac sichern kann.
Abhi Beckert

5
@square_eyes So funktioniert das Löschen von fest verknüpften Dateien nicht. Angenommen, es gibt 100 Intervalle mit derselben Datei. Die Datei ist einmal auf dem Datenträger vorhanden, die Anzahl der Verknüpfungen beträgt jedoch 100. Wenn Sie eine löschen, verschwindet dieser Verzeichniseintrag an der Stelle, an der Sie sie gelöscht haben, und die Anzahl der Verknüpfungen beträgt jetzt 99. Nur wenn die Anzahl der Verknüpfungen auf 0 geht, wird die Datei selbst gelöscht. Bei allen anderen Löschvorgängen wird lediglich ein Verzeichniseintrag entfernt.
bmike

5
Die Backups müssen nicht einzeln gelöscht werden. Sie können sudo tmutil delete alle zu löschenden Sicherungen eingeben und in das Terminalfenster ziehen. @drfrogsplat In der Manpage wird erwähnt, dass dieser Befehl Sicherungen löschen kann, die von einem anderen Computer erstellt wurden.
Pointum

2
@pointum ist richtig. Wenn Sie im Terminal bleiben möchten, können Sie außerdem Platzhalter wie die folgenden verwenden: 'sudo tmutil delete 2015- *' Dies kann ein langsamer Prozess sein, insbesondere bei sich drehenden Datenträgern. Das Löschen mehrerer Dateien ist daher aus Gründen der Sicherheit und Effizienz von entscheidender Bedeutung.
Matt Dressel

81

Der einfachste Weg ist:

  1. Zeitmaschine eingeben (auf dem Mac, dessen Backup Sie löschen möchten)
  2. Gehen Sie zu dem Zeitpunkt, den Sie löschen möchten
  3. Wählen Sie das Symbol, das im Finder wie ein Zahnrad aussieht, und wählen Sie "Backup löschen" (in Mavericks: Klicken Sie mit der rechten Maustaste in das Finder-Fenster und wählen Sie "Backup löschen").

Dadurch wird sichergestellt, dass der Sicherungskatalog korrekt bleibt und die Integrität Ihrer Daten erhalten bleibt.


3
@drfrogsplat ist sehr korrekt, dass die Verwendung der von Apple bereitgestellten GUI der beste Weg ist (funktioniert bei allen Versionen), um ein Backup zu löschen, und weniger fehleranfällig ist, da es mehrere visuelle Rückmeldungen (wenn Sie genau hinschauen) und eine Überprüfung vor der Eingabe gibt Geben Sie Ihr Passwort ein, um sicherzugehen, dass die Löschung dauerhaft ist.
bmike

1
Ich sehe kein Lösch-Backup-Objekt auf Außenseitern im
Zahnradmenü

@ Brainray Ich gab Antwort für Außenseiter
Inder Kumar Rathore

1
Außer wenn es ein teilweises Löschen durchführt (aus welchem ​​Grund auch immer), wird das teilweise Backup tmutil delete
vergessen,

1
Dies funktioniert nicht, wenn Sie das Problem "Warten ..." haben. Das Warten funktioniert nicht immer.
Almo

39

Für Außenseiter / Yosemite

  1. Zeitmaschine eingeben
  2. Wählen Sie die Sicherung aus
  3. Rechtsklick auf das Backup (im Finder-Fenster)
  4. Wählen Sie "Backup löschen"

Es wird nach dem Passwort gefragt und Sie sind fertig

Bildbeschreibung hier eingeben


Rechtsklick auf das Backup: wo?
brainray

Ein Rechtsklick auf ein Finder-Fenster in der Mitte des Fensters und eine Liste mit Optionen werden angezeigt
Inder Kumar Rathore

13
Es ist erwähnenswert, dass Time Machine nicht die Löschungen durchführen und nicht nach Ihrem Passwort fragen , bis Sie verlassen Time Machine. Die Vorgehensweise zum Beenden von Time Machine nach der Auswahl der zu löschenden Dateien und Ordner ist ebenfalls nicht offensichtlich: Sie müssen cancelin die linke untere Ecke klicken . (Anscheinend ist das, was Sie "abbrechen", die Wiederherstellung von Dateien; Löschvorgänge gelten dabei anscheinend nicht als abgebrochen.)
mhucka

3
Dies funktionierte auch für mich von einer anderen Maschine. Mein alter MBP hat sich gebrannt, mein neuer hat andere Festplat- tennamen und Partitionen usw. Schließlich ist meine TM-Festplatte voll, und ich möchte nicht alle Backups meiner alten Maschine löschen. Wenn Sie die Option gedrückt halten, klicken Sie in der Menüleiste auf Zeitmaschine und dann auf "Andere Sicherungsdisketten durchsuchen". Ich konnte zur ersten alten Sicherung gelangen, indem ich ein Laufwerk mit demselben Namen einsteckte. Von dort aus konnte ich zur alten Laufwerksstruktur wechseln und mit diesem Tipp einige wirklich alte Backups löschen.
Mark

Oder klicken Sie einfach auf den Root-Geräteordner in der Seitenleiste (damit die alte Partitions- und Laufwerksstruktur angezeigt wird). In meinem Fall "Geräte -> Macbook Pro"
Mark

18

Dieses Skript findet automatisch die älteste TM-Sicherung für Ihren Computer, teilt Ihnen die älteste und neueste Sicherung mit und fordert Sie auf, die älteste Sicherung zu löschen. Sie müssen YIhr Administratorkennwort eingeben und eingeben, um es zu löschen.

Bash-Skript:

COMPUTER_NAME=$(scutil --get ComputerName)
NBACKUPS=$(tmutil listbackups | grep "$COMPUTER_NAME" | wc -l)
OLDEST_BACKUP=$(tmutil listbackups | grep "$COMPUTER_NAME" | head -n1)
LATEST_BACKUP=$(tmutil latestbackup)
echo Latest backup: $LATEST_BACKUP

if [[ -n "$LATEST_BACKUP" && "$LATEST_BACKUP" != "$OLDEST_BACKUP" ]]; then
     echo -n "$NBACKUPS backups. Delete oldest: ${OLDEST_BACKUP##*/} [y/N]? "
     read answer
     case $answer in
         y*)
             echo Running: sudo tmutil delete "$OLDEST_BACKUP"
             sudo time tmutil delete "$OLDEST_BACKUP"
             ;;
         *)
             echo No change
             ;;
     esac
 else
     echo "No backup available for deletion"
 fi

Zusammenfassend findet dieses Skript automatisch die älteste TM-Sicherung für Ihren Computer, teilt Ihnen die älteste und neueste Sicherung mit und fordert Sie auf, die älteste Sicherung zu löschen. Sie müssen YIhr Administratorkennwort eingeben und eingeben, um es zu löschen.
Hengjie

3
Beachten Sie, dass dies die Größe Ihrer Sparsebundle-Sicherungsdateien nicht automatisch verringert. Sie müssen sudo hdiutil compact /path/to/disk-image
rein

14

Ich habe mir genau diese Frage gestellt, und die Antworten hier haben sicherlich geholfen. Es fehlt jedoch ein Aspekt, bei dem es sich möglicherweise um ein neues Implementierungs- "Detail" handelt, das zum Zeitpunkt der Beantwortung dieser Frage nicht vorhanden war.

tmutil deletelöscht zwar Backups, beansprucht aber nicht den tatsächlich belegten Speicherplatz, jedenfalls nicht garantiert. Ich habe ungefähr 2 ganze Tage damit verbracht, Backups von> 2y ago zu löschen. 400 GB Daten. Ich habe gesehen, dass die Anzeige für den freien Backup-Speicherplatz einmal entsprechend gestiegen ist, aber nach dem nächsten Backup war ich wieder auf nur 7% verfügbaren Speicherplatz (858 GB anstelle von etwa 450 GB) gesunken. Das hat mich wirklich behindert.

Die Antwort auf dieses Rätsel finden Sie hier: http://blog.hawkimedia.com/2012/08/reclaiming-a-timemachine-volumes-disk-space/ Kurz gesagt, Sie müssen das Sparse-Bundle komprimieren, das das Backup tatsächlich enthält wenn es auf einer Netzwerkfestplatte oder auf einer Festplatte gehostet wird, die nicht in HFS + formatiert ist. Ich habe keine TM-Sicherungen, die nicht in einem Sparse-Bundle gehostet werden. Daher kann nicht überprüft werden, ob die Verwendung von tmutil deleteReclaim für diese Sicherungen kostenlos ist. Möglicherweise ist dies eine Besonderheit des Sparse-Bundle-Protokolls. Der auszuführende Befehl sudo tmutil deletelautet sudo hdiutil compact /Volumes/YourTimeMachineDisk/YourBackupName.sparsebundle. In meinem Fall hat das berichtet

Starting to compact…
Reclaiming free space…
...................................................................................................................................
Finishing compaction…
Reclaimed 403.2 GB out of 583.5 GB possible.

Die gute Nachricht ist, dass dieser Befehl nur einen Bruchteil der Zeit in Anspruch nahm, die tmutil in Anspruch nahm, viel weniger Zeit für die Suche auf der Festplatte benötigte und weniger RAM verbrauchte (tatsächlich wurde er in der Zeit ausgeführt, die ich für das Schreiben dieser Antwort benötigte).


Ich lösche jetzt Backups ohne Sparsebundle, und der Speicherplatz scheint frei zu sein, ohne dass ein zusätzlicher Schritt erforderlich ist.
Almo

12

Wenn Time Machine wirklich nur Differenzen sichert, ist das Löschen in umgekehrter Reihenfolge nicht das, was Sie wollen. Außerdem wäre es hilfreich, ein Skript zu haben, das das nächste Skript löscht, wenn das aktuelle abgeschlossen ist, da jedes Löschen einige Zeit in Anspruch nehmen kann.

Nach dem obigen Beispielskript von user36971 habe ich ein Skript geschrieben, das alle Sicherungen von dem angegebenen und früheren löscht:

#!/bin/bash

if [ -z "$1" ]
then
    echo "must specify backup id: YYYY-MM-DD-HHMMSS"
    exit 1
fi

FOUND_BACKUP=0;
BACKUPS=""
while read line; do
    if [[ "${line}" == *$1* ]]
    then
        FOUND_BACKUP=1;
    fi

    if [ "${FOUND_BACKUP}" == "1" ]
    then
        BACKUPS+="${line}"$'\n'
    fi
done < <(/usr/bin/tmutil listbackups | tail -r)

if [ "${FOUND_BACKUP}" == "0" ]
then
    exit 1
fi

printf '%s' "$BACKUPS"

echo -n "Delete above backups? [y/N]? "
read answer
case $answer in
    y*)
        while read line; do
            if [ -n "${line}" ]
            then
                echo Running: /usr/bin/sudo /usr/bin/tmutil delete "${line}"
                /usr/bin/sudo time /usr/bin/tmutil delete "${line}"
            fi
        done < <(echo "${BACKUPS}")
        ;;
    *)
        echo No change
        ;;
esac

Beachten Sie , dass ich die Überprüfung des Computernamens nicht in mein Skript aufgenommen habe. Wenn Sie also ein Sicherungslaufwerk für mehrere Computer freigeben, müssen Sie möglicherweise eine zusätzliche Überprüfung hinzufügen.


1
TM sichert nur das Delta bei jedem Lauf, behält jedoch eine vollständige Kopie pro Lauf auf der Sicherungsdiskette. Für Dateien, die zwischen den Läufen nicht geändert wurden (dh die meisten), wird nur ein neuer Verzeichniseintrag hinzugefügt. Dies kann bedeuten, dass Sie möglicherweise viele Sicherungen löschen müssen, bevor Sie einen signifikanten Anstieg des freien Speicherplatzes bemerken, wenn Sie zwischen den Durchläufen nur kleine Deltas haben.
Nohillside

2
Die Reihenfolge, in der Sie die Backups löschen, spielt keine Rolle. Wenn Sie tmutil deletezum Löschen aller Sicherungen für ein bestimmtes Jahr ein Platzhalterzeichen mit verwenden , werden die ältesten bis neuesten Sicherungen gelöscht. Und übrigens ist die Verwendung eines Platzhalters in den meisten Fällen viel einfacher als die Verwendung eines Skripts :)
mluisbrown

Ich würde empfehlen, printf '% s' "$ BACKUPS" vor der Zeile zum Löschen von Backups
hinzuzufügen

2
Ich kann mehrere Backups löschen, ohne dabei sudo tmutil delete 2016-06-12-184217 2016-06-19-080529 2016-06-26-092218
Folgendes zu verwenden

-3

eröffnen sie einfach ein terminal,

#sudo tmutil disablelocal

Dies sollte Speicherplatz freigeben, ohne TM-Sicherungen zu löschen


3
Dadurch werden lokale Time Machine-Snapshots von einem internen Laufwerk deaktiviert - nicht nach was das OP fragt.
Scot

2
Ja - dies gibt nur Speicherplatz auf dem Mac-Startvolume frei - nicht auf dem Ziel. Nützlich, muss aber auf einer anderen Frage IMO sein.
bmike

-3

Hier ist Schritt für Schritt, was ich getan habe, um mein altes Backup zu löschen

  1. Öffnen Sie Time Machine Disk
  2. Suchen Sie und öffnen Sie den Ordner Backups.backupdb
  3. Gehen Sie zur Anzeige nach Datum und wählen Sie das älteste oben aus
  4. Wählen Sie das Backup aus, das Sie löschen möchten
  5. Öffnen Sie Teminal und tippen Sie sudo rm -rvf
  6. Ziehen Sie die alten Ordner, die Sie löschen möchten, in das Terminalfenster und legen Sie sie dort ab
  7. Geben Sie Ihr Benutzerpasswort an der Eingabeaufforderung ein

Nehmen Sie sich einen Kaffee oder schauen Sie sich einen Film an. Wenn der Vorgang abgeschlossen ist, müssen Sie ihn möglicherweise für einige Ordner wiederholen, die nicht gelöscht werden sollen.

Wenn alle Ihre alten Ordner verschwunden sind, muss Time Machine die Datenbank aktualisieren. Hier ist eine Möglichkeit, Time Machine zum Aktualisieren zu zwingen.

  1. Geben Sie Time Machine ein und wechseln Sie zum ältesten Backup, das noch aufgeführt ist
  2. Wählen Sie es aus und klicken Sie auf das kleine Zahnrad und wählen Sie dann Backup löschen
  3. Geben Sie Ihr Passwort ein und warten Sie einige Minuten
  4. Beenden Sie Time Machine und kehren Sie zurück. Jetzt sollte Ihre Time Machine die richtige Sicherung auflisten.

14
Mach das nicht. Time Machine verwendet ein komplexes Verknüpfungssystem. Sie können Ihre Backups brechen. Siehe pondini.org/TM/Home.html
Harv

2
Nach dem Lesen von http://pondini.org/TM/Works.html sehe ich keinen Grund, warum das Löschen alter Backups mit sudo rm -rvfTime Machine zum Absturz führt. Der rmBefehl ist die Befehlszeilenalternative zu dem Vorschlag, aus dem Finder zu löschen ( http://pondini.org/TM/12.html
Pro Backup
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.