Come posso eliminare manualmente i vecchi backup per liberare spazio per Time Machine?


224

Uso Time Capsule per il backup e ora desidero che l'unità esegua il backup dei dati da un Mac aggiuntivo. Ma l'unità è piena di vecchi backup da Mac 1. Semplicemente non c'è abbastanza spazio disponibile per il backup per Mac 2.

Ricevo questo messaggio di errore quando eseguo il backup di Time Machine:

Time Machine non è riuscito a completare il backup. Questo backup è troppo grande per il disco di backup. Il backup richiede 28,68 GB ma sono disponibili solo 626,2 MB.

Time Machine ha bisogno di spazio di lavoro sul disco di backup, oltre allo spazio necessario per archiviare i backup. Apri le preferenze di Time Machine per selezionare un disco di backup più grande o ridurre il backup escludendo i file.

So che Time Machine stessa è in grado di rimuovere i vecchi backup quando ha bisogno di più spazio. Ma in questo caso non rimuove alcun backup di Mac 1 per fare spazio per Mac 2.

La domanda è: come posso farlo manualmente?


3
Dato quanto sono economiche le unità esterne, sarei tentato di acquistarne uno e utilizzarlo per la tua macchina aggiuntiva. Preferisco gli elementi: amazon.com/Western-Digital-Elements-External-WDBAAU0010HBK-NESN/…
james.garriss

2
@ james.garriss buon punto :) Tuttavia, devo ancora scambiare unità nella mia capsula del tempo :)
Jesper Rønn-Jensen,

1
Qualcuno sa se esiste un modo (senza scrivere uno script) per chiedere a TM di mantenere solo 1 backup al mese per il backup più vecchio di 1 anno?
gamov,

2
Non puoi creare 2 partizioni diverse sul tuo disco TM e scegliere una partizione diversa per ogni Mac?
Pierre Watelet,

Risposte:


235

Fai attenzione con sudo e assicurati di scegliere i file Mac corretti poiché non c'è annullamento o conferma del seguente comando:

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

Il comando sudo ha bisogno della tua password (e non riecheggerà sullo schermo, quindi basta digitarlo e mettere in pausa per essere sicuro di uscire con i file corretti prima di premere Invio). Se vuoi essere più sicuro, puoi scegliere un'istantanea da eliminare prima per essere sicuro che il comando funzioni come previsto. Questo è bello poiché potrebbero volerci ore per ripulire alcuni set di backup più grandi e vuoi lasciare il Mac fiducioso che sta eliminando l'archivio informazioni corretto.

È possibile utilizzare lo tmutilstrumento per eliminare i backup uno per uno.

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

Da quando è tmutilstato introdotto con Lion, questo non funzionerà con le versioni precedenti del sistema operativo.

Se si desidera ottenere la directory corrente dei backup (possono essere definite più destinazioni e solo una sarà "corrente")

sudo tmutil machinedirectory

4
Ha funzionato come un fascino. Avevo vecchi backup enormi e disconnessi dal set di macchine del tempo originale a causa delle modifiche del disco rigido. Non sono riuscito a eliminarli con sudo rm (che è strano), ma questo ha funzionato. Grazie!
David Pisoni,

2
@drfrogsplat sì, ma quando si lavora con vecchi backup è normale che il mac originale sia morto. Nel mio caso sto cercando di liberare spazio sul mio disco di backup in modo da poterlo utilizzare per il backup di un nuovo mac.
Abhi Beckert,

5
@square_eyes Non è così che funziona la cancellazione di file con collegamenti fisici. Diciamo che ci sono 100 intervalli con lo stesso file. Il file esiste sul disco una volta, ma il conteggio dei collegamenti è 100. Quando si elimina uno, quella voce della directory scompare dove è stata eliminata e il conteggio dei collegamenti è ora 99. Solo quando il conteggio dei collegamenti va a 0 il file stesso viene eliminato. Tutte le altre eliminazioni rimuovono semplicemente una voce della directory.
bmike

5
Non è necessario eliminare i backup uno per uno. È possibile digitare sudo tmutil delete e quindi trascinare tutti i backup che si desidera eliminare nella finestra Terminale. @drfrogsplat la pagina man menziona questo comando in grado di eliminare i backup creati da una macchina diversa.
pointum,

2
@pointum è corretto. Inoltre, se si desidera rimanere nel terminale, è possibile utilizzare i caratteri jolly in questo modo: 'sudo tmutil delete 2015- *' Può essere un processo lento, soprattutto con i dischi rotanti, quindi l'eliminazione di più file è fondamentale per la sanità mentale e l'efficienza.
Matt Dressel,

81

Il modo più semplice è:

  1. Inserisci time machine (sul Mac di cui desideri eliminare il backup)
  2. Vai al momento in cui desideri eliminare
  3. Seleziona l'icona che assomiglia a un ingranaggio nel mirino e scegli "Elimina backup" (in Mavericks: fai clic destro nella finestra del mirino e scegli "Elimina backup")

Ciò garantisce che il catalogo di backup rimanga accurato e che l'integrità dei dati rimanga intatta.


3
@drfrogsplat ha perfettamente ragione nel dire che l'uso della GUI fornita da Apple è il modo migliore (funziona su tutte le versioni) per eliminare un backup ed è meno soggetto a errori poiché ci sono più feedback visivi (se guardi attentamente) e un controllo prima di entrare la tua password per essere sicuro di essere consapevole che l'eliminazione è permanente.
bmike

1
Non vedo un elemento di backup di eliminazione sui maverick nel menu
dell'ingranaggio

@brainray Ho pubblicato la risposta per i maverick
Inder Kumar Rathore,

1
Tranne quando tmutil delete
esegue un'eliminazione

1
Questo non funziona se hai il problema "In attesa ...". apple.stackexchange.com/questions/207787/… L' attesa non funziona sempre.
Almo,

39

Per Mavericks / Yosemite

  1. Inserisci la macchina del tempo
  2. Seleziona il backup
  3. Fai clic destro sul backup (nella finestra del Finder)
  4. Seleziona "Elimina backup"

Chiederà la password e il gioco è fatto

inserisci qui la descrizione dell'immagine


Fare clic con il tasto destro sul backup: dove?
brainray

Ti verrà mostrata una finestra del Finder facendo clic con il tasto destro nel mezzo della finestra e ti verrà mostrato un elenco di opzioni
Inder Kumar Rathore,

13
Vale la pena notare che Time Machine non eseguirà le eliminazioni e non chiederà la password fino all'uscita da Time Machine. E anche la procedura per uscire da Time Machine dopo aver selezionato i file e le cartelle per l'eliminazione non è ovvia: devi fare clic cancelnell'angolo in basso a sinistra. (Apparentemente, la cosa che stai "cancellando" è il ripristino dei file; le eliminazioni apparentemente non sono considerate cancellate quando lo fai.)
mhucka,

3
Questo ha funzionato anche per me da un'altra macchina. Il mio vecchio MBP si è rotto, il mio nuovo ha diversi nomi e partizioni del disco rigido, ecc. Alla fine ha riempito il mio disco TM e non voglio cancellare tutti i backup della mia vecchia macchina. Quindi tieni premuto Opzione, fai clic su Time Machine nella barra dei menu e "Sfoglia altri dischi di backup". Sono stato in grado di accedere al primo vecchio backup collegando un'unità con lo stesso nome. Da lì ho potuto passare alla vecchia struttura dell'unità e utilizzare questo suggerimento per eliminare alcuni backup molto vecchi.
Segna il

Oppure fai semplicemente clic sulla cartella del dispositivo principale nella barra laterale (per far apparire la vecchia partizione e la struttura dell'unità). Nel mio caso "Dispositivi -> Macbook Pro"
Segna il

18

Questo script troverà automaticamente il backup TM più vecchio per il tuo computer, indicherà qual è il backup più vecchio e più recente e ti fornirà una richiesta per eliminare il backup più vecchio. È necessario inserire Ye inserire la password dell'amministratore per eliminarla.

script bash:

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

In breve, questo script troverà automaticamente il backup TM più vecchio per il tuo computer, indicando quale è il backup più vecchio e più recente e ti fornirà una richiesta per eliminare il backup più vecchio. È necessario inserire Ye inserire la password dell'amministratore per eliminarla.
Hengjie,

3
Nota che questo non ridurrà automaticamente la dimensione dei tuoi file di backup sparsebundle. Dovrai entrare e correresudo hdiutil compact /path/to/disk-image
Hengjie,

14

Mi sono posto proprio questa domanda, e le risposte qui sicuramente hanno aiutato. Tuttavia, manca un aspetto che potrebbe essere un nuovo "dettaglio" di implementazione che non esisteva alla risposta a questa domanda.

tmutil deleteelimina effettivamente i backup, ma in realtà non recupera lo spazio che occupavano, almeno non in alcun modo garantito. Ho trascorso circa 2 giorni interi a eliminare i backup da> 2 anni fa, che secondo il messaggio di completamento finale ammontava a ca. 400 GB di dati. Ho visto l'indicazione dello spazio di backup libero salire di conseguenza una volta , ma dopo il backup successivo sono sceso di nuovo al solo 7% di spazio disponibile (858 GB utilizzati invece di circa 450 GB). Questo mi ha davvero ostacolato.

La risposta a questo mistero è data qui: http://blog.hawkimedia.com/2012/08/reclaiming-a-timemachine-volumes-disk-space/ In breve, devi compattare il bundle sparse che contiene effettivamente il backup se è ospitato su un disco di rete o su un disco non formattato in HFS +. Non ho backup TM che non sono ospitati in un bundle sparse, quindi non posso verificare se l'utilizzo li tmutil deleterichiede gratuitamente. Potrebbe benissimo fare e il fatto che non su Time Capsule potrebbe essere semplicemente una peculiarità del protocollo bundle sparse. Il comando da eseguire dopo sudo tmutil deleteè sudo hdiutil compact /Volumes/YourTimeMachineDisk/YourBackupName.sparsebundle. Nel mio caso quello riportato

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

La buona notizia è che questo comando ha impiegato solo una piccola parte del tempo impiegato da tmutil, impiegando molto meno tempo a cercare sul disco e ad utilizzare meno RAM (in effetti è stato completato nel tempo impiegato per scrivere questa risposta).


Sto eliminando i backup ora senza uno sparsebundle e lo spazio sembra essere liberato senza fare un passo in più.
Almo,

12

Se Time Machine esegue davvero il backup delle differenze, eliminare in ordine inverso non è quello che desideri. Inoltre, dato che ogni cancellazione può richiedere del tempo, sarebbe bello avere uno script che eliminerà quello successivo al completamento di quello corrente.

Seguendo lo script di esempio di user36971 sopra, ne ho scritto uno che eliminerà tutti i backup da quello specificato e precedente:

#!/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

Non nota Non ho incluso il controllo nome del computer nel mio script, quindi se si sta condividendo un disco di backup con più computer, potrebbe essere necessario aggiungere un ulteriore controllo.


1
TM esegue solo il backup delta ad ogni esecuzione, ma mantiene una copia completa per esecuzione sul disco di backup. Per i file non modificati tra le esecuzioni (questo significa la maggior parte di esse), viene aggiunta solo una nuova voce di directory. Ciò potrebbe significare che se si hanno solo piccoli delta tra le esecuzioni, potrebbe essere necessario eliminare molti backup prima di notare un aumento significativo dello spazio libero.
Nohillside

2
L'ordine in cui si eliminano i backup non fa alcuna differenza. Infatti, se si utilizza un carattere jolly con tmutil deleteper eliminare tutti i backup per un determinato anno, verranno eliminati dal più vecchio al più recente. E a proposito, usare un jolly è molto più facile che usare uno script per la maggior parte dei casi :)
mluisbrown,

Consiglierei di aggiungere printf '% s' "$ BACKUPS" prima della riga di eliminazione dei backup per fornire un feedback migliore
petr

2
Posso eliminare più backup senza usare while, come ad esempio: sudo tmutil delete 2016-06-12-184217 2016-06-19-080529 2016-06-26-092218
yuxuan

-3

basta aprire un terminale,

#sudo tmutil disablelocal

questo dovrebbe liberare spazio senza eliminare i backup TM


3
Ciò disabiliterà le istantanee locali di Time Machine da un'unità interna, non ciò che l'OP sta chiedendo.
Scot,

2
Sì, questo libera solo spazio sul volume di avvio del Mac, non sulla destinazione. Utile, ma deve essere su una domanda diversa IMO.
bmike

-3

Ecco cosa ho fatto passo dopo passo per eliminare il mio vecchio backup

  1. Apri Time Machine Disk
  2. Individua e apri la cartella Backups.backupdb
  3. Vai a visualizzare per data e scegli il più vecchio in alto
  4. Seleziona il backup che desideri eliminare
  5. Apri Teminal e digita sudo rm -rvf
  6. Trascina e rilascia le vecchie cartelle che desideri eliminare nella finestra Terminale
  7. Immettere la password utente al prompt

Andare a prendere un caffè o guardare un film, al termine del processo potrebbe essere necessario ripeterlo di nuovo per alcune cartelle che non si desidera eliminare.

Quando tutte le vecchie cartelle sono sparite, Time Machine deve aggiornare il suo database. Ecco un modo per forzare l'aggiornamento di Time Machine.

  1. Inserisci Time Machine e vai al backup più vecchio che è ancora elencato
  2. Selezionalo e fai clic sulla piccola attrezzatura, quindi scegli Elimina backup
  3. Inserisci la tua password e attendi qualche minuto
  4. Esci dall'interfaccia di Time Machine e torna di nuovo. Ora dovresti avere la tua Time Machine che elenca il backup corretto.

14
Non farlo. Time Machine utilizza un sistema di collegamento complesso. È possibile interrompere i backup. Vedi pondini.org/TM/Home.html
Harv,

2
Dopo aver letto http://pondini.org/TM/Works.html non vedo il motivo per cui l'eliminazione dei vecchi backup utilizzando sudo rm -rvfinterromperà Time Machine. Il rmcomando è l'alternativa della riga di comando al suggerimento di eliminare dal Finder in fondo http://pondini.org/TM/12.html
Pro Backup
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.