Automatycznie zmniejsz istniejącą kopię zapasową Time Machine do stałego rozmiaru

11

Gogłem przez kilka godzin, aby znaleźć rozwiązanie tego problemu, ale nie mogłem znaleźć odpowiedzi, która pasowałaby do mojego problemu.

Moja konfiguracja:

  • Mam iMaca z dyskiem twardym ~ 1 TB
  • Tworzę kopię zapasową za pomocą Time Machine na Synology NAS DS214 + z ~ 2,7 TB przestrzeni

Mój problem:

  • Zapomniałem ustawić limit rozmiaru dla użytkownika kopii zapasowej. No my Time Machine Backup zajmuje około 2,3 TB miejsca. To nie fajne.
  • Nie mogę ustawić limitu dla użytkownika Synology, ponieważ zaczyna on liczyć od zera.

Co chcę robić:

  • Jeśli to możliwe, chcę, aby moja Time Machine Backup automatycznie zmniejszyła się do limitu ~ 1,5 TB, usuwając najstarsze kopie zapasowe.
  • Potem chcę, aby rzadki pakiet już się nie powiększał.

Czy ktoś z was widzi rozwiązanie? Czy też muszę usunąć wszystkie stare kopie zapasowe, aby osiągnąć cel?

Michał
źródło
Tylko do wiadomości: Używam OS X Yosemite 10.10.3 i bieżące oprogramowanie na moim serwerze Synology NAS.
Michael

Odpowiedzi:

3

Wehikuł czasu będzie respektować ustalanie wielkości - ale tylko wtedy, gdy wykonasz pojemnik . Ta funkcja to wszystko, co Apple zapewnia dla natywnej kopii zapasowej, więc potrzebujesz niestandardowej konfiguracji, aby wykonać to, o co prosisz, i nie możesz ograniczać rzeczy po rozpoczęciu tworzenia kopii zapasowej w kontenerze.

Idąc dalej, jeśli chcesz stworzyć nowy kontener z ograniczeniami, koncepcja nie jest trudna do zmapowania.

  • utwórz nowy kontener na synologii i upewnij się, że egzekwujesz ograniczenia rozmiaru po uruchomieniu procesu.

Server.app robi to z łatwością - nie jestem świadomy kodu synology, który odwrócił inżynierię tej funkcji, ale byłbym zaskoczony, gdyby nie była ona w GitHub lub opublikowana gdzieś publicznie.

W tym momencie możesz usunąć wszystkie kopie zapasowe folderów użytkowników, które są duże, a następnie blok po bloku skopiować stare dane kopii zapasowej do nowego miejsca docelowego, a następnie odziedziczyć kopię zapasową.

Można również cienkie interwały tworzenia kopii zapasowych z wiersza poleceń lub skrypty tej automatyzacji.

Dużo pracy, ale może być warto jako projekt, jeśli ktoś jest skłonny.

Kiedy jestem w twoich butach, po prostu kopiuję starą „zbyt dużą” kopię zapasową na dysk twardy w trybie offline, kładę ją na półce i zaczynam od nowa z kopiami zapasowymi w rozmiarze, który ci się podoba. Za 6 miesięcy lub rok - wytrzyj stary dysk, chyba że naprawdę uważasz, że potrzebujesz tej starszej historii.

bmike
źródło
Dokładnie to, co zrobiłem: zacząłem od nowej kopii zapasowej Time Machine. Dziękuję za odpowiedź!
Michael
TimeMachine ma ustawienie, aby ustawić Maxsize dla zestawu sparsebundle, ale z mojego doświadczenia wynika, że ​​działa to tylko w przypadku nowych sparsebundle, a nie istniejących. Jedynym rozwiązaniem jego problemu jest usunięcie starych kopii zapasowych, a moje rozwiązanie jest najlepszym sposobem na zrobienie tego.
Robert Barrueco,
Zgadzam się - czy powinienem pogrubić, ale tylko wtedy, gdy zrobisz kontener lub zmienisz go, aby był bardziej przejrzysty @RobertBarrueco
bmike
Odkryłem, że „Narzędzie dyskowe” może zmienić rozmiar kontenera Time Machine, jeśli będzie w nim wolne miejsce, co z kolei spowodowało, że Time Machine wykorzystał nowy, mniejszy rozmiar pojemnika jako limit. To było na mojej Time Capsule. Domyślam się, że początkowy pojemnik jest zbudowany z dostępnego wówczas wolnego miejsca.
Thorbjørn Ravn Andersen
2

To najłatwiejsze rozwiązanie przy użyciu terminala OSX.

Uzyskaj listę wszystkich kopii zapasowych w TimeMachine. Spowoduje to również wyświetlenie pełnej ścieżki katalogu do kopii zapasowych, które będą potrzebne w kroku 2 ...

$ tmutil listbackups

/Volumes/Time Machine Backups/Backups.backupdb/{your-macbook}/2018-10-02-213405
/Volumes/Time Machine Backups/Backups.backupdb/{your-macbook}/2018-10-09-192323
/Volumes/Time Machine Backups/Backups.backupdb/{your-macbook}/2018-10-19-212659

Wybierz kopie zapasowe do usunięcia na podstawie ich daty. Zwróć uwagę na użycie symbolu wieloznacznego * i katalogu z kroku 1. Na przykład, aby usunąć wszystkie kopie zapasowe w 2018 r., Użyj tego:

$ sudo tmutil delete '/ Volumes / Time Machine Backups / Backups.backupdb / {your-macbook} / 2018 -' *

Ostatnim krokiem jest zmniejszenie i odzyskanie przestrzeni z rzadkiego pakietu. Wyszukaj na dysku zapasowym plik .sparsebundle.

$ sudo hdiutil compact '/Volumes/{your-mac}.sparsebundle'

Robert Barrueco
źródło
Jak to automatycznie zmniejsza kopię zapasową do określonego rozmiaru, o jaki poprosił PO?
nohillside
0

Zmniejsz wolumin kopii zapasowej do żądanego rozmiaru. Time Machine zaprojektowano tak, aby ciągle dodawał kopie zapasowe, aż wolumin zostanie zapełniony, a następnie przycinał starsze kopie. NIE jest przeznaczony do dzielenia przestrzeni dyskowej z innymi rzeczami ani do pozostawienia X gigabajtów wolnych w miejscu docelowym.

Paweł
źródło
5
Cóż, nie mogę zmniejszyć głośności, ponieważ zajmuje już więcej miejsca, niż chciałem. To mój problem.
Michael
1
jak byś zmniejszył głośność?
jmh
0

Zgadzam się z odpowiedzią podaną wcześniej, ale możesz spróbować ręcznie usunąć kopie zapasowe Time Machine (na własne ryzyko).

Po zamontowaniu woluminu istnieje folder o nazwie „Backups.backupdb” (może wyglądać nieco inaczej na zdalnych kopiach zapasowych). Wewnątrz będzie mieć nazwę twojego komputera, a następnie daty lub woluminy lub odwrotnie (przepraszam, jestem obecnie z dala od mojego Maca i nie mogę sprawdzić dokładnej kolejności).

Jeśli usuniesz niektóre foldery z wcześniejszymi datami, zwolnisz trochę miejsca, aby zmienić rozmiar woluminu.

UWAGA: Należy pamiętać, że Time Machine to przyrostowa kopia zapasowa wykorzystująca dowiązania twarde do niezmienionych plików. Tak więc usunięcie jednego folderu z datą może nie usunąć ilości miejsca, w którym ma zostać określony rozmiar.

Feniks
źródło
2
Ta strona mówi o usuwaniu kopii zapasowych za pomocą sudo tmutil delete.
Harvey
Time Machine udostępnia niezmienione pliki za pomocą twardego łącza. Jeśli usuniesz całą kopię zapasową, pliki używane przez inne kopie zapasowe nie zostaną usunięte, tylko łącza.
WGroleau,
0
momomo.com.apple.timemachine.backups.list() {
        tmutil listbackups
}
momomo.com.apple.timemachine.backups.compact() {
        local leave="${1}";

        if [[ "${leave}" == "" ]]; then leave="5"; fi

        local backups=(
                $(momomo.com.apple.timemachine.backups.list)
        )

        local length="${#backups[@]}"
        local     to="(("${length}"-"${leave}"))"

        local i=0; while [[ "${i}" -lt "${to}"  ]]; do
                local backup="${backups[i]}"

                sudo tmutil delete "${backup}"

                echo -e "\n\n"

                ((++i))
        done   
}

Przykład:

# To leave last 10 on disk and remove all previous before
momomo.com.apple.timemachine.backups.compact 10 

Można wywoływać wielokrotnie.

    Deleting: /Volumes/backupdisk-1/Backups.backupdb/m-desktop-2/2019-12-21-001329
    Deleted (4.6G): /Volumes/backupdisk-1/Backups.backupdb/m-desktop-2/2019-12-21-001329
    Total deleted: 4.6G

    Deleting: /Volumes/backupdisk-1/Backups.backupdb/m-desktop-2/2019-12-28-001355
    Deleted (5.1G): /Volumes/backupdisk-1/Backups.backupdb/m-desktop-2/2019-12-28-001355
    Total deleted: 5.1G

    Deleting: /Volumes/backupdisk-1/Backups.backupdb/m-desktop-2/2020-01-04-001349
    Deleted (6.6G): /Volumes/backupdisk-1/Backups.backupdb/m-desktop-2/2020-01-04-001349
    Total deleted: 6.6G

    Deleting backup: /Volumes/backupdisk-1/Backups.backupdb/m-desktop-2/2020-01-11-002303
    ...
mmm
źródło