从TimeMachine中删除不必要的备份以获取空间


16

我知道,TimeMachine上没有足够的空间可以自动删除最旧的备份。我也使用TimeCapsule在WiFi上共享文件,因此我想通过删除不必要的备份来释放一些空间:

  • 不需要备份的大文件(例如,Lightroom的图像预览超过1 GB)。我已将它们排除在TM首选项中,但它们已存在于较早的备份中,可永久保留空间。

  • 我知道我将不需要最旧的备份。(因此触发与TimeMachine相同,但会在磁盘变空之前自动触发)。



2
@whatyouhide苹果提供的工具都是unix命令,例如tmutil compare,没有GUI界面。大多数用户只是将旧驱动器放在架子上,以129美元的价格购买新的4 TB驱动器,然后再次开始备份,而不是微管理备份。有很多工具可以帮助管理存储,其中一些非常便宜。您是否探索过Time Machine的控件?
bmike

Answers:


7

我使用这篇文章来帮助我从Time Machine中删除文件:

它谈论的是删除单个文件的所有备份,也许这不是您想要的,但是它肯定可以解决第一个问题(Lightroom预览)。实际上,删除一个文件的所有备份或一个备份中的所有文件要比从一个备份中删除一个文件要容易得多。

这是该文章的简短摘要:

  1. 开放时间机器
  2. 选择要从备份中删除的文件夹/文件
  3. 通过Finder菜单栏中的“选项”菜单(在TM中不可用ctrl单击,不知道为什么),选择“删除选定文件的所有备份”,其中选定文件(显然是!)是您选择的文件。

12

您只需输入Time Machine并选择文件夹,应用程序和文件,然后选择删除该项目的所有备份副本。tmutil compare如果您不介意使用终端和UNIX Shell ,则命令行还会详尽介绍备份间隔之间的变化。即使没有外壳工具,也可以按照以下方式通过Time Machine GUI进行微管理存储-引用Apple在Mac Basics上的文章:Time Machine

您还可以进入Time Machine还原界面,找到可以从备份驱动器本身删除的文件,以节省空间。为此,请选择文件,然后从“时间机器查找器”窗口的“动作”弹出菜单(齿轮图标)中选择“删除...的所有备份”。确保只删除您确定不需要或以后想要恢复的文件。

接下来,您可以使用BackupLoupe之类的工具来分析Time Machine备份,以识别每个间隔使用了多少空间,平均备份需要多少空间,以当前速率填充驱动器需要多长时间,等等。

BackupLoupe

通过这种详细程度,您可以根据情况所需的细节来满足您的存储需求。该工具帮助我找出了有问题的备份驱动器,文件系统损坏的Mac(每个备份的大小超出应有的大小,等等…)。一旦了解存储的内容,就可以删除文件夹,整个快照并配置备份排除列表与您的可用存储和备份需求保持一致。


2
那个BackupLoupe太棒了!不幸的是,它不允许删除文件,但是一个好的工作流程是:1)在BackupLoupe中找到大块2)⌘+ i和路径3的副本3)⌘+ shift + g在Finder中并粘贴路径4的后一半TimeMachine 5)选择一个文件,然后从“选项”菜单中“删除所有备份”,如另一个答案所述
myneur 2013年

是的-两个答案都包含带有齿轮控制的“动作”弹出菜单。这非常方便,因为Time Machine不会允许finder或BackupLoupe之类的应用从备份存储中实际删除文件(通过设计)
bmike

4

如果要从某个特定日期删除备份,则有一个解决方案。我从这个截屏视频中看到了它:

  • 转到菜单栏上的时间机器图标,单击输入时间机器。
  • 在桌面进入stars动画之后,您应该能够在右侧看到备份的日期列表。
  • 转到要删除的备份日期
  • 在中间,点击齿轮图标,然后点击删除备份
  • 出现提示时输入密码

3
需要说明的是:“齿轮图标”位于“时光机器”视图的Finder工具栏中。
尼尔森

2

输入Time Machine,浏览到整个驱动器的最早备份,右键单击并选择Delete Folder,这是怎么回事。为我工作。


这样可行。如上文bmike所述。我只是不知道有可能那样做..
myneur 2013年

2

我写了一个bash脚本删除所有备份,但是自从其他地方发布以来的最新备份对我不起作用。我知道您不想专门这样做,但是可以对其进行修改以保留更多备份(请参见下文)。请注意,这不适用于从备份中删除特定的文件夹或文件。该脚本假定您将其放在本地硬盘(最有可能是外部磁盘)上。我必须编写自己的文件,因为备份与该计算机没有关联,因此tmutil listbackups无法正常工作,而这正是其他脚本所依赖的。

在下面的脚本中,用DISKNAMETime Machine备份替换为硬盘名称,并替换COMPUTERNAME为备份所属的计算机的名称。

首先,运行此脚本以查看该脚本将删除的备份列表:

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

+3将留下的最后一个备份。如果要保留最后两个备份,请进行备份+4。要保留最后三个备份,+5等等。

要删除除最新备份以外的所有备份,请运行以下脚本:

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)

我知道可以通过定义变量和内容使它变得更奇特,但是老实说,我对Shell脚本并不了解。我只知道其他超级复杂的代码没有用,但这对我有用,所以这里是给后代使用。


运行此命令后,有必要再次进行备份,因为仅备份更改的文件,因此lats备份仅包含与前一个更改的文件。我明白吗?
myneur 2015年

1
它会包含所有文件,就像它们在最新备份时一样。因此,即使在第二次备份和最新备份之间没有更改文档,该文档仍然存在。每次备份都是增量备份是正确的,这意味着它仅备份已更改的文件。但是文件存储为硬链接,这意味着两个备份中的相同文件仅存储一次,但两个备份中的硬链接都指向同一文件。因此,如果删除了一个硬链接,则另一个硬链接仍指向文件数据,因此它仍然存在。
LakeHMM

我已经在本地尝试过...虽然可以正常工作,但是如果备份少于四个,则存在风险。如果有四个或更多现有备份,它将删除它们,但最新备份除外。如果少于四个,tail -n +3则将列出剩余的三个备份,其中包括最新的一个。使用此工具时要格外小心...
nwinkler 2015年


1

在终端中运行以下单个命令以删除所有Time Machine备份(最新的除外):

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

您可能需要将终端应用程序添加到系统偏好设置>安全性和隐私>隐私选项卡>完整磁盘访问。


0

Disk Inventory X应用程序确实帮助我检测了备份磁盘上的大文件。之后,我只是手动删除了大文件。


自2005年以来,似乎尚未对此应用程序进行更新。如问题所述,您使用该应用程序删除不必要的Time Machine备份有何经验?
nohillside

我只是在搜索备份目录并找到不必要的大多媒体文件。
caner

您正在使用Time Machine进行备份吗?之后如何从备份驱动器中删除文件?
nohillside

-1

嗨,是的,它比我想象的还要容易,我只是单击了时间机器图标,然后单击了硬盘,在该硬盘上选择了时间机器,然后选择了我不需要的备份(通常方式-按住cmd并选择备份日期您要删除,然后在“文件”工具栏中单击“删除”,然后将其删除,然后清空垃圾桶,然后检查您在Time Machine所在的硬盘上创建的空间!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.