Как удалить (с помощью CLI tmutil delete
) все старые резервные копии из TimeMachine. Я хочу сохранить только текущую резервную копию.
Я хочу поместить это в crontab
.
Найдено , как удалить старые резервные копии из Time Machine на Mac
sudo tmutil delete /Volumes/Time Machine Backups/Backups.backupdb/MacBook\ Pro/2015-07-13-150021/
Я не люблю указывать временные метки. Я хочу иметь только одну текущую полную резервную копию. Это означает удаление удаленных файлов и версий с резервного диска.
Начиная с macOS Big Sur 11.2.3+ и в соответствии с обновленной версией man tmutil
вам необходимо указать диск точки монтирования и отметку времени каждой резервной копии, используя флаги и соответственно -d
. -t
Итак, для принятого ответа необходима следующая настройка:
# assuming you have the backup disk connected & root privileges:
# get the latest backup to exclude from deletion
latest=$(sudo tmutil latestbackup)
# the 4th line after the last space from `tmutil destinationinfo` output
# contains the mount disk name
mountpoint=$(tmutil destinationinfo | sed '4q;d' | sed 's/.* //')
echo "latest is $latest"
# delete all the backups excluding the latest
backups=$(sudo tmutil listbackups)
echo $backups | while read timestamp; do
if [[ "$timestamp" != "$(basename $latest)" ]]; then
echo sudo tmutil delete -d $mountpoint -t $timestamp
fi
done
# if you want to keep the last, say, 3 backups, pipe "sed '$d'" 3-1=2 times:
backups=$(sudo tmutil listbackups | sed '$d' | sed '$d')
Это должно выглядеть так sudo tmutil delete -d /Volumes/TimeMachineBackups -t 2021-04-10-004103
.
sudo tmutil delete -d 2020-12-16 -t 151046.backup
я получаю эту ошибку:151046.backup: Invalid argument (error 22)
tmutil listbackups
?. Для меня это ГГГГ-ММ-ДД-ччммсс. В этом случае вы можете удалить .backup
суффикс. Я добавил правку.man tmutil
говорит: удалить [-d резервная_точка_монтирования -t временная метка] [-p путь]. Путь указан только для hfs, но вам нужна точка монтирования, а также метка времени. Нет аргумента -d.sudo tmutil delete -d /Volumes/.timemachine/<UUID>/<date-time>.backup -t <date-time>
. Смотрите мой ответ на apple.stackexchange.com/questions/407967/…#!/bin/bash
latest=$(sudo tmutil latestbackup)
sudo tmutil listbackups | while read backup; do
if [[ "$backup" != "$latest" ]]; then
echo sudo tmutil delete "$backup"
fi
done
Удалите, как echo
только убедитесь, что вывод правильный.
sudo
может истечь во время выполнения tmutil delete
. Вероятно, вы захотите просто удалить sudo из скрипта и вместо этого запустить этот скрипт с помощью sudo. Кроме того, tmutil listbackups
на самом деле не перечислены «последние» резервные копии, по крайней мере, не в моей системе, поэтому ваш скрипт эффективно удаляет ВСЕ резервные копии.sudo tmutil latestbackup
).
мммммм
мммммм
Бенвигги