Usuń niepotrzebne kopie zapasowe z TimeMachine, aby uzyskać miejsce

16

Wiem, że najstarsze kopie zapasowe są usuwane automatycznie, gdy nie ma miejsca na nowe w TimeMachine. Używam TimeCapsule również do udostępniania plików przez Wi-Fi, więc chciałbym zwolnić trochę miejsca, usuwając niepotrzebne kopie zapasowe:

  • Duże pliki, których nie trzeba tworzyć kopii zapasowej (np. Podgląd zdjęć Lightroom powyżej 1 GB). Wyłączyłem je w preferencjach TM, ale są już obecne w starszych kopiach zapasowych, zachowując przestrzeń na zawsze.

  • Najstarsze kopie zapasowe wiem, że nie będę potrzebować. (Aby uruchomić to samo co TimeMachine, robi to automatycznie, ale wcześniej niż dysk się opróżnia).

myneur
źródło
2
@whatyouhide Narzędzia, które zapewnia Apple, to wszystkie polecenia uniksowe, takie jak tmutil comparei nie mają interfejsu GUI. Większość użytkowników po prostu stawia swój stary dysk na półce i kupuje nowy dysk 4 TB za 129 USD i zaczyna tworzenie kopii zapasowej zamiast kopii zapasowych z mikromanaganem. Istnieje wiele narzędzi ułatwiających zarządzanie pamięcią masową, niektóre bardzo tanie. Czy zbadałeś kontrolę nad Time Machine?
bmike

Odpowiedzi:

7

Korzystam z tego artykułu, aby pomóc mi w usuwaniu plików z Time Machine:

Mówi o usunięciu wszystkich kopii zapasowych jednego pliku, być może nie jest to, czego szukasz, ale zdecydowanie może rozwiązać pierwsze problemy (wersje Lightroom). W praktyce łatwiej jest usunąć wszystkie kopie zapasowe jednego pliku lub wszystkich plików w jednej kopii zapasowej, niż wejść i usunąć tylko jeden plik z jednej kopii zapasowej.

Oto krótkie streszczenie tego artykułu:

  1. Wehikuł czasu
  2. Wybierz folder / plik, który chcesz usunąć z kopii zapasowych
  3. Poprzez menu „opcja” na pasku menu Findera (kliknięcie z wciśniętym klawiszem Ctrl nie jest dostępne w TM, nie wiem dlaczego) wybierz „Usuń wszystkie kopie zapasowe wybranego pliku ”, gdzie wybrany plik to (oczywiście!) Wybrany plik.
whatyouhide
źródło
12

Możesz po prostu wejść do Time Machine i wybrać foldery, aplikacje i pliki oraz usunąć wszystkie kopie zapasowe tego elementu. Wiersz poleceń tmutil comparepodaje także wyczerpujące szczegóły tego, co zmieniło się między interwałami tworzenia kopii zapasowych, jeśli nie masz nic przeciwko użyciu terminala i powłoki UNIX. Nawet bez narzędzi powłoki możesz zarządzać pamięcią masową z graficznego interfejsu użytkownika Time Machine w następujący sposób - cytując artykuł Apple na Mac Basics: Time Machine :

Możesz także przejść do interfejsu przywracania Time Machine i znaleźć pliki, które można usunąć z samego dysku kopii zapasowej, aby zaoszczędzić miejsce. Aby to zrobić, wybierz plik (i) iz wyskakującego menu Akcja (ikona koła zębatego) w oknie Wyszukiwarki Czasu wybierz „Usuń wszystkie kopie zapasowe ...”. Usuń tylko te pliki, których na pewno nie będziesz potrzebować lub chcesz przywrócić później.

Następnie możesz użyć narzędzia, takiego jak BackupLoupe, aby przeanalizować kopie zapasowe wehikułu czasu, aby określić, ile miejsca zajmuje każdy interwał, ile miejsca zajmuje przeciętna kopia zapasowa, ile czasu zajmie wypełnienie dysku z bieżącą szybkością itp.

BackupLoupe

Przy takim poziomie szczegółowości możesz tak mało potrzebować miejsca na dane, albo z taką ilością szczegółów, ile wymaga sytuacja. To narzędzie pomogło mi znaleźć problematyczne dyski do tworzenia kopii zapasowych, komputery Mac z uszkodzonym systemem plików (gdy każda kopia zapasowa jest większa niż powinna, itp.). Gdy już zobaczysz, co jest przechowywane, możesz usunąć foldery, całe migawki i skonfigurować listy wykluczeń kopii zapasowych aby być w harmonii z dostępnymi potrzebami do przechowywania i tworzenia kopii zapasowych.

bmike
źródło
2
To BackupLoupe jest niesamowite! Niestety nie pozwala na usuwanie plików, ale dobrym przepływem pracy jest: 1) zlokalizowanie dużego fragmentu w BackupLoupe 2) ⌘ + i i skopiowanie ścieżki 3) ⌘ + shift + g w Finderze i wklejenie drugiej połowy ścieżki 4) wejście TimeMachine 5) wybierz plik i „Usuń wszystkie kopie zapasowe” z menu „Opcje” jak opisano w drugiej odpowiedzi
myneur
Tak - obie odpowiedzi obejmują wyskakujące menu Akcja z dźwignią zmiany biegów. Jest to bardzo przydatne, ponieważ Time Machine nie pozwala wyszukiwarce ani aplikacjom takim jak BackupLoupe na usuwanie plików z magazynu kopii zapasowych (według projektu) .
bmike
4

Jeśli chcesz usunąć kopię zapasową z określonej daty, istnieje na to rozwiązanie. Widziałem to z tego screencastu :

  • Przejdź do ikony wehikułu czasu na pasku menu, kliknij wprowadź wehikuł czasu.
  • Po przejściu pulpitu do animacji gwiazd po prawej stronie powinna być widoczna lista dat kopii zapasowych.
  • Przejdź do daty kopii zapasowej, którą chcesz usunąć
  • W środku kliknij ikonę koła zębatego i kliknij Usuń kopię zapasową .
  • Po wyświetleniu monitu wpisz hasło
Enrico Susatyo
źródło
3
Aby to wyjaśnić: ikona koła zębatego znajduje się na pasku narzędzi Findera w widoku Wehikułu Czasu.
Nelson
2

Co jest nie tak z wchodzeniem do Time Machine, przeglądaniem najstarszej kopii zapasowej całego dysku, klikaniem prawym przyciskiem myszy i wybieraniem Usuń folder. Pracuje dla mnie.

crunchcom
źródło
To działa. Jak opisano dokładniej przez bmike powyżej. Po prostu nie wiedziałem, że można to zrobić w ten sposób ...
Myneur
2

Napisałem skrypt bash, aby usunąć wszystkie kopie zapasowe, ale najnowsze, ponieważ te opublikowane gdzie indziej nie działały dla mnie. Wiem, że nie chciałeś tego specjalnie robić, ale można to zmodyfikować, aby zachować więcej kopii zapasowych (patrz poniżej). Nie oznacza to, że nie dotyczy to usuwania określonych folderów lub plików z kopii zapasowych. Ten skrypt zakłada, że ​​masz go na lokalnym dysku twardym (najprawdopodobniej na dysku zewnętrznym). Musiałem napisać własny, ponieważ kopie zapasowe nie są powiązane z tym komputerem, więc tmutil listbackupsnie działa i od tego zależały inne skrypty.

W poniższych skryptach zamień DISKNAMEnazwę dysku twardego na kopie zapasowe Time Machine i COMPUTERNAMEnazwę komputera, do którego należą kopie zapasowe.

Najpierw uruchom ten skrypt, aby zobaczyć listę kopii zapasowych, które skrypt usunie:

while read line; do
    echo "/Volumes/DISKNAME/Backups.backupdb/COMPUTERNAME/${line}"
done < <(ls /Volumes/DISKNAME/Backups.backupdb/COMPUTERNAME | tail -r | tail -n +3)

+3Uczyni opuszczenia ostatniej kopii zapasowej. Jeśli chcesz zachować dwie ostatnie kopie zapasowe, zrób to +4. Aby zachować ostatnie trzy kopie zapasowe +5itd.

Aby usunąć wszystkie kopie zapasowe oprócz najnowszej, uruchom ten skrypt:

while read line; do
    sudo tmutil delete "/Volumes/DISKNAME/Backups.backupdb/COMPUTERNAME/${line}"
done < <(ls /Volumes/DISKNAME/Backups.backupdb/COMPUTERNAME | tail -r | tail -n +3)

Wiem, że można to uczynić bardziej intuicyjnym, definiując zmienne i inne rzeczy, ale szczerze mówiąc, nie jestem zbyt dobrze zaznajomiony ze skryptami powłoki. Wiem, że inne super-skomplikowane nie działały, ale to dla mnie zadziałało, więc tutaj jest dla potomności.

LakeHMM
źródło
Po uruchomieniu tej kopii zapasowej należy ponownie wykonać kopię zapasową, ponieważ kopia zapasowa obejmuje tylko zmienione pliki, więc kopia zapasowa zawiera tylko pliki zmienione w stosunku do poprzedniego. Czy dobrze to rozumiem?
myneur
1
Zawierałby wszystkie pliki takie, jakie były w czasie ostatniej kopii zapasowej. Tak więc nawet jeśli dokument nie zmienił się między drugą a ostatnią kopią zapasową i najnowszą kopią zapasową, nadal istnieje. Prawidłowe jest, że każda kopia zapasowa jest przyrostowa, co oznacza, że ​​tworzy kopię zapasową tylko tych plików, które uległy zmianie. Ale pliki są przechowywane jako twarde łącza, co oznacza, że ​​identyczny plik w dwóch kopiach zapasowych jest przechowywany tylko raz, ale z twardymi linkami w obu kopiach zapasowych wskazującymi ten sam plik. Więc jeśli jeden twardy link zostanie usunięty, drugi twardy link nadal wskazuje na dane pliku, a więc nadal istnieje.
LakeHMM
Próbowałem tego lokalnie ... Chociaż działa, istnieje ryzyko, że istnieje mniej niż cztery kopie zapasowe. Jeśli istnieją co najmniej cztery kopie zapasowe, zostaną one usunięte, z wyjątkiem najnowszej. Jeśli jest mniej niż czterech, tail -n +3pokaże trzy pozostałe kopie, który zawiera najnowszą jeden. Zachowaj szczególną ostrożność podczas korzystania z tego ...
nwinkler
2

Napisałem skrypt powłoki, który pozwala opcjonalnie określić liczbę dni przechowywania: wszystkie kopie zapasowe starsze niż określona liczba dni (od teraz) są usuwane.

Możesz to sprawdzić w repozytorium GitHub .

Enrico M. Crisostomo
źródło
1

Uruchom to pojedyncze polecenie w Terminalu, aby usunąć wszystkie kopie zapasowe Time Machine, z wyjątkiem najnowszych:

find $(tmutil machinedirectory) -name "2*" -maxdepth 1 | sort -r | tail -n +2 | sudo xargs tmutil delete

Konieczne może być dodanie aplikacji Terminal do Preferencji systemowych> Bezpieczeństwo i prywatność> karta Prywatność> Pełny dostęp do dysku.

cdb
źródło
0

Aplikacja Disk Inventory X naprawdę pomogła mi w wykrywaniu dużych plików na dysku z kopią zapasową. Następnie ręcznie usunąłem duże pliki.

Caner
źródło
Wygląda na to, że ta aplikacja nie była aktualizowana od 2005 r. Jakie są Twoje wrażenia z używania jej do usuwania niepotrzebnych kopii zapasowych Time Machine, jak opisano w pytaniu?
nohillside
Właśnie przeszukuję katalog kopii zapasowej i znajduję duże niepotrzebne pliki multimedialne.
caner
Tworzysz kopie zapasowe za pomocą Time Machine? Jak usunąć pliki z dysku z kopią zapasową?
nohillside
-1

Cześć tak, to było łatwiejsze niż myślałem też kliknąłem ikonę wehikułu czasu, a następnie kliknąłem na dysku twardym, na którym wehikuł czasu jest następnie wybrany kopii zapasowych, których nie chcę (w zwykły sposób - przytrzymaj cmd i wybierz daty kopii zapasowej chcesz usunąć, a następnie naciśnij klawisz Delete na pasku narzędzi Plik i nisko, już ich nie ma. Następnie opróżnij kosz, a następnie sprawdź miejsce utworzone na dysku twardym, na którym mieszka wehikuł czasu!

Brian
źródło