Як я можу вручну видалити старі резервні копії, щоб звільнити місце для Time Machine?


206

Я використовую Time Capsule для резервного копіювання, і тепер я хочу диск для резервного копіювання даних з додаткових Mac. Але накопичувач заповнюється старими резервними копіями з Mac 1. Для простого резервного копіювання для Mac 2 просто не вистачає місця.

Це повідомлення про помилку відображається під час запуску резервної копії Time Machine:

Time Machine не змогла виконати резервне копіювання. Ця резервна копія занадто велика для резервного диска. Для резервного копіювання потрібно   28,68 ГБ, але доступно лише 626,2 Мб.

Машина часу потребує робочого місця на резервному диску, на додаток до   для зберігання резервних копій. Відкрийте налаштування Time Machine на   виберіть більший резервний диск або зменшіть резервну копію, виключивши   файлів.

Я знаю, що сама машина часу може видаляти старі резервні копії, коли їй потрібно більше місця. Але в цьому випадку він не видаляє жодних резервних копій Mac 1, щоб зробити місце для Mac 2.

Питання: як це зробити вручну?


2
Враховуючи, як дешеві зовнішні диски, я хотів би купити один і використовувати його для додаткової машини. Я віддаю перевагу елементам: amazon.com/Western-Digital-Elements-External-WDBAAU0010HBK-NESN/…
james.garriss

1
@ james.garriss хороший момент :) Однак, я все ще доведеться поміняти диски в моїй капсулі часу :)
Jesper Rønn-Jensen

Хто-небудь знає, чи є спосіб (без написання скрипту) просити ТМ зберігати лише 1 резервну копію на місяць для резервного копіювання у віці старше 1 року?
gamov

1
Чи не можете ви створити 2 типи розділів на диску ТМ і вибрати інший розділ для кожного Mac?
Pierre Watelet

Відповіді:


217

Будьте обережні з sudo і переконайтеся, що ви вибрали правильні файли Mac, оскільки немає скасування або підтвердження наступної команди:

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

Команді sudo потрібен ваш пароль (і він не відображатиметься на екрані, тому просто введіть його та призупиніть, щоб переконатися, що ви знайдете правильні файли, перш ніж натиснути enter). Якщо ви хочете бути більш безпечними, ви можете вибрати один знімок, щоб видалити його, щоб переконатися, що команда працює так, як це задумано. Це приємно, оскільки для очищення більших наборів резервних копій може знадобитися кілька годин, і ви хочете, щоб Mac залишився впевнений, що він видаляє правильний сховище інформації.

Ви можете використовувати tmutil інструмент для видалення резервних копій один за одним.

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

З tmutil було введено з Lion, це не буде працювати на більш ранніх версіях ОС.

Якщо ви хочете отримати поточний каталог резервних копій (може бути визначено кілька напрямків і лише один буде "поточним")

sudo tmutil machinedirectory

4
Працював як шарм. У мене були старі резервні копії, які були величезні і відключені від оригінальної машини часу, встановленого через зміни жорсткого диска. Я не міг видаляти їх за допомогою sudo rm (це непристойно), але це зробило виклик. Дякую!
David Pisoni

2
@drfrogsplat так, але при роботі зі старими резервними копіями звичайно для мертвих оригінальних Mac. У моєму випадку я намагаюся звільнити місце на моєму резервному диску, так що я можу використовувати його для резервного копіювання нового Mac.
Abhi Beckert

5
@square_eyes Це не так, як видалення жорстких пов'язаних файлів працює. Скажімо, існує 100 інтервалів з одним і тим же файлом. Файл існує на диску один раз, але кількість зв'язків дорівнює 100. Коли ви видаляєте один, цей запис в каталозі йде, де ви видалили, а кількість зв'язків зараз становить 99. Тільки коли кількість ліній переходить до 0, сам файл видаляється. Всі інші видалення просто видаляють запис каталогу.
bmike

5
Немає необхідності видаляти резервні копії один за одним. Можна ввести sudo tmutil delete а потім перетягніть всі резервні копії, які потрібно видалити, у вікно Терміналу. @drfrogsplat сторінка людини згадує цю команду можна видалити резервні копії, створені іншою машиною.
pointum

1
Щоб знайти розташування резервних копій, можна запустити sudo tmutil listbackups. Відкрийте цю папку в Finder, і ви зможете вибрати резервні копії, які потрібно видалити, а потім перетягніть їх у вікно терміналу після введення sudo tmutil delete . Він буде видаляти їх по одному. Я вважаю, що це супер відмінно.
Jordan H

78

Найпростіше:

  1. Введіть машину часу (на Mac, чию резервну копію потрібно видалити)
  2. Перейдіть до моменту часу, який потрібно видалити
  3. Виберіть піктограму, яка виглядає як гвинтик у пошуку, і виберіть "Видалити резервну копію" (у Mavericks: клацніть правою кнопкою миші у вікні пошуку і виберіть "Видалити резервну копію")

Таким чином резервний каталог залишається точним, а цілісність даних залишається недоторканою.


2
@drfrogsplat дуже правильний, що використання графічного інтерфейсу, що забезпечує Apple, є найкращим способом (працює на всіх версіях), щоб видалити резервну копію і менш схильний до помилок, оскільки існує кілька візуальних відгуків (якщо ви уважно подивитеся) і перевірте, перш ніж ввести пароль, щоб переконатися, що видалення є постійним.
bmike

1
Я не бачу видаляти резервну копію на Mavericks в меню cog
brainray

@brainray Я відправив відповідь на маверики
Inder Kumar Rathore

1
За винятком випадків, коли він частково видаляє (з якоїсь причини), він забуває про часткову резервну копію, тому ви не зможете її видалити tmutil delete
Jeroen Wiert Pluimers

1
Це не працює, якщо у вас є проблема "Очікування ...". apple.stackexchange.com/questions/207787/… Очікування не завжди працює.
Almo

33

Для Маверикс / Йосеміті

  1. Введіть машину часу
  2. Виберіть резервну копію
  3. Клацніть правою кнопкою миші на резервній копії (у вікні пошуку)
  4. Виберіть "Видалити резервну копію"

Вона запитає пароль, і ви закінчите

enter image description here


Клацніть правою кнопкою миші на резервній копії: де?
brainray

Вам буде показано вікно пошуку, клацніть правою кнопкою миші в середині вікна, і вам буде показаний список опцій
Inder Kumar Rathore

12
Варто зауважити, що Time Machine не виконуватиме видалення і не запитуватиме ваш пароль, поки ви Вхід Машина часу. І процедура виходу Time Machine після вибору файлів і папок для видалення теж не очевидна: потрібно натиснути cancel у нижньому лівому куті. (Очевидно, що ви "скасовуєте" це відновлення файлів, видалення, мабуть, не вважаються скасованими, коли ви робите це.)
mhucka

3
Це також працювало для мене з іншої машини. Мій старий MBP отримав смажений, мій новий має різні імена жорстких дисків і розділів і т.д. Нарешті він заповнюється до мого диска ТМ, і я не хочу видаляти всі резервні копії моєї старої машини. Таким чином, ви тримаєте опцію, клацніть на машині часу в рядку меню і "Огляд інших резервних дисків". Я зміг дістатися до першої старої резервної копії, підключивши диск з такою ж назвою. Звідти я міг перейти до старої структури диска, і використовувати цей відгук, щоб видалити деякі дійсно старі резервні копії.
Mark

Або просто клацніть на кореневій папці пристрою на бічній панелі (для появи старого розділу та структури диска). У моєму випадку "Пристрої - & gt; Macbook Pro"
Mark

17

bash:

COMPUTER_NAME=$(/usr/sbin/scutil --get ComputerName)
NBACKUPS=$(/usr/bin/tmutil listbackups |
  /usr/bin/grep "$COMPUTER_NAME" |
  /usr/bin/wc -l)
OLDEST_BACKUP=$(/usr/bin/tmutil listbackups |
  /usr/bin/grep "$COMPUTER_NAME" |
  /usr/bin/head -n1)
LATEST_BACKUP=$(/usr/bin/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: /usr/bin/sudo /usr/bin/tmutil delete "$OLDEST_BACKUP"
/usr/bin/sudo time /usr/bin/tmutil delete "$OLDEST_BACKUP"
;;
*)
 echo No change
 ;;
 esac
 else
 echo "No backup available for deletion"
 fi

Таким чином, цей скрипт автоматично знайде найстарішу резервну копію для вашого комп'ютера, повідомить вам, яка з них є найстарішою та найновішою, і надасть вам запит на видалення найстарішої резервної копії. Ви повинні ввести Y і введіть пароль адміністратора, щоб видалити його.
Hengjie

2
Зверніть увагу, що це не призведе до автоматичного зменшення розміру файлів резервної копії. Ви повинні ввійти і побігти sudo hdiutil compact /path/to/disk-image
Hengjie

Яскраво корисний маленький скрипт, спасибі
andynormancx

13

Я сам ставив собі це питання, і відповіді тут, безумовно, допомогли. Проте є аспект, якого не вистачає, який може бути новим «деталізацією» реалізації, якої не було, коли було дано відповідь на це питання.

tmutil delete дійсно видаляє резервні копії, але насправді не відновлює простір, який вони взяли, принаймні, не будь-яким гарантованим способом. Я витратив близько 2 цілих днів на видалення резервних копій з & gt; 2-го тому, що відповідно до остаточного повідомлення про завершення склало бл. 400 Гб даних. Я бачив, як увімкнути відповідну позначку про вільний резервний простір один раз , але після чергового резервного копіювання я знову опустився до 7% вільного простору (858Gb замість 450Gb). Це дійсно мене зірвало.

Відповідь на цю таємницю дається тут: http://blog.hawkimedia.com/2012/08/reclaiming-a-timemachine-volumes-disk-space/ Коротше кажучи, ви повинні ущільнити розріджений пакет, який фактично містить резервну копію, якщо він розміщений на мережевому диску, або на диску, який не відформатований у HFS +. Я не маю резервних копій ТМ, які не розміщені в розрідженому пакеті, тому не можна перевірити, чи використовується tmutil delete не повертається безкоштовно на них. Це цілком може бути, і те, що він не працює на Time Capsule, може бути просто особливістю розрідженого протоколу розшарування. Команда для виконання після sudo tmutil delete є sudo hdiutil compact /Volumes/YourTimeMachineDisk/YourBackupName.sparsebundle . У моєму випадку це повідомлялося

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

Хороша новина полягає в тому, що ця команда зайняла лише частину часу, коли tmutil взяв, витрачаючи набагато менше часу на пошук на диску і використовуючи менше оперативної пам'яті (насправді він завершився в той час, коли мені знадобилося написати цю відповідь).


Я тепер видаляю резервні копії без sparsebundle, і простір, здається, звільняється, не роблячи додаткового кроку.
Almo

12

Якщо Time Machine дійсно тільки створює резервні копії відмінностей, видалення у зворотному порядку не є тим, що потрібно. Плюс з урахуванням того, що кожне видалення може зайняти деякий час, маючи скрипт, який видалить наступний, коли поточний завершиться було б добре.

Наступні Приклад сценарію user36971 вище, я написав один, який видалить всі резервні копії з вказаного і раніше:

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

Зробіть Примітка Я не включив перевірку назви комп'ютера у свій сценарій, тому, якщо ви використовуєте один диск резервного копіювання з кількома комп'ютерами, вам може знадобитися додати додаткову перевірку.


1
ТМ тільки резервні копії дельта з кожним запуском, але зберігає повну копію на запуск на резервному диску. Для файлів, які не змінюються між прогонами (це означає більшість з них), додано лише новий запис каталогу. Це може означати, що якщо у вас лише невеликі дельти між прогонами, можливо, доведеться видалити багато резервних копій, перш ніж помітите значне збільшення вільного простору.
nohillside

2
Порядок видалення резервних копій не має ніякого значення. Дійсно, якщо ви використовуєте шаблон з tmutil delete щоб видалити всі резервні копії за певний рік, вони видалить їх найстарішим до найновішого. До речі, використання шаблону значно простіше, ніж використання сценарію для більшості випадків :)
mluisbrown

Я б рекомендував додати printf "% s" "$ BACKUPS" перед тим, як видалити рядок резервних копій, щоб дати кращий відгук
petr

2
Я можу видалити кілька резервних копій без використання в той час, як: sudo tmutil delete 2016-06-12-184217 2016-06-19-080529 2016-06-26-092218
yuxuan

-2

Ось крок за кроком, що я зробив, щоб видалити стару резервну копію

  1. Відкрийте диск Time Machine
  2. Знайдіть і відкрийте папку Backups.backupdb
  3. Перейдіть до перегляду за датою та оберіть найстарішу вершину
  4. Виберіть резервну копію, яку потрібно видалити
  5. Відкрийте термінал і введіть тип sudo rm -rvf
  6. Перетягніть старі папки, які потрібно видалити, у вікні терміналу
  7. Введіть пароль користувача під час запрошення

Перейдіть до кави або подивіться фільм, коли процес завершиться, можливо, вам доведеться повторити його для деяких папок, які не хочете видаляти.

Коли всі ваші старі папки зникнуть, Time Machine потребує оновлення своєї бази даних. Ось спосіб примусити Time Machine до оновлення.

  1. Введіть Time Machine і перейдіть до найстарішої резервної копії, яка все ще є в списку
  2. Виберіть його і натисніть на маленький механізм, а потім виберіть Видалити резервну копію
  3. Введіть пароль і зачекайте кілька хвилин
  4. Вийдіть з інтерфейсу Time Machine і поверніться знову. Тепер у вас повинна бути ваша машина часу, що містить правильну резервну копію.

12
Не роби цього. Машина часу використовує складну систему зв'язку. Ви можете зламати резервні копії. Подивитися pondini.org/TM/Home.html
Harv

2
Після читання http://pondini.org/TM/Works.html Я не бачу причин, через які було видалено старі резервні копії sudo rm -rvf розбиває машину Time. The rm Команда є альтернативою командного рядка для пропозиції видалити з Finder внизу http://pondini.org/TM/12.html
Pro Backup

-3

просто відкрийте термінал,

#sudo tmutil disablelocal

це має звільнити місце без видалення резервних копій ТМ


2
Це призведе до відключення локальних знімків Time Machine з внутрішнього диска - не про те, про що звертається ОП.
Scot

2
Так - це лише звільняє простір на завантажувальний том Mac - а не на пункт призначення. Корисно, але має бути на інше питання IMO.
bmike
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.