So löschen Sie (mit CLI tmutil delete
) alle alten Backups von TimeMachine. Ich möchte nur die aktuelle Sicherung behalten.
Das möchte ich eintragen crontab
.
Gefunden , wie man alte Sicherungen von Time Machine auf dem Mac löscht
sudo tmutil delete /Volumes/Time Machine Backups/Backups.backupdb/MacBook\ Pro/2015-07-13-150021/
Ich mag es nicht, Zeitstempel anzugeben. Ich möchte nur eine aktuelle vollständige Sicherung haben. Dies bedeutet, gelöschte Dateien und Versionen von der Sicherungsfestplatte zu entfernen.
Ab macOS Big Sur 11.2.3+ – und gemäß dem Update – müssen Sie den Mount-Point-Datenträger und den Zeitstempel jedes Backups mithilfe von bzw. Flags man tmutil
angeben . Für die akzeptierte Antwort ist also die folgende Optimierung erforderlich:-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')
So sollte es aussehen sudo tmutil delete -d /Volumes/TimeMachineBackups -t 2021-04-10-004103
.
sudo tmutil delete -d 2020-12-16 -t 151046.backup
Ich erhalte diesen Fehler:151046.backup: Invalid argument (error 22)
tmutil listbackups
?. Bei mir ist es JJJJ-MM-TT-hhmmss. In diesem Fall möchten Sie vielleicht das .backup
Suffix entfernen. Ich habe eine Bearbeitung hinzugefügt.man tmutil
sagt: delete [-d backup_mount_point -t timestamp] [-p path]. Der Pfad gilt nur für hfs, aber Sie benötigen den Einhängepunkt sowie den Zeitstempel. Es gibt kein -d-Argument.sudo tmutil delete -d /Volumes/.timemachine/<UUID>/<date-time>.backup -t <date-time>
. Siehe meine Antwort auf 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
Entfernen Sie das , echo
sobald Sie sicher sind, dass die Ausgabe korrekt ist.
sudo
kann die von gewährte Nachfrist während der Ausführung ablaufen tmutil delete
. Wahrscheinlich möchten Sie einfach sudo aus dem Skript entfernen und dieses Skript stattdessen mit sudo ausführen. Außerdem tmutil listbackups
werden die "neuesten" Backups nicht wirklich aufgelistet, zumindest nicht auf meinem System, sodass Ihr Skript effektiv ALLE Backups löscht.sudo tmutil latestbackup
).
mmmmmm
mmmmmm
benwiggy