如何更好地清理 Time Machine 备份 | 您所在的位置:网站首页 › macbook内存清理 › 如何更好地清理 Time Machine 备份 |
Time Machine 是 macOS 自带的一个备份工具,能够自动备份系统中的文件,并保留各个文件的历史版本。 在备份磁盘空间不足时,Time Machine 能够自动清理旧备份。但是部分场景下,仍有手动清理备份的需求,例如: 一个硬盘被多台 Mac 使用,清理一台电脑的旧备份,为另一台电脑腾出备份空间释放硬盘空间,用于保存其他文件换用小容量硬盘,例如从 HDD 更换为 SSD删除备份中不重要的大文件(例如 Stram 游戏库、虚拟机、iOS 模拟器等),为个人文档等重要文件留出更多备份空间,从而保留重要文件的更多历史版本在我的 NAS 上,由于之前没有设置空间配额,Time Machine 备份占用了大量空间,影响其他文件的存放。于是,我开始了解如何进行 Time Machine 的清理。 tmutil 命令行工具macOS 自带 tmutil 工具,能够实现查看备份、创建备份、删除备份、比较备份等功能。 其中,tmutil listbackups 命令可以显示 Time Machine 中的所有备份: $ tmutil listbackups /Volumes/时间机器备份/Backups.backupdb/blanboom-studio/2019-12-21-200941 /Volumes/时间机器备份/Backups.backupdb/blanboom-studio/2020-01-05-221538 /Volumes/时间机器备份/Backups.backupdb/blanboom-studio/2020-01-19-203155tmutil delete 命令则可以删除 Time Machine 中的指定备份: $ sudo tmutil delete /Volumes/时间机器备份/Backups.backupdb/blanboom-studio/2019-02-01-211852 Deleting: /Volumes/时间机器备份/Backups.backupdb/blanboom-studio/2019-02-01-211852 Deleted (427.2M): /Volumes/时间机器备份/Backups.backupdb/blanboom-studio/2019-02-01-211852有了这两条命令,我们可以方便地在 shell 脚本中使用,进行批量删除备份的操作。 使用脚本批量删除旧备份在上网搜索的过程中,我发现已经有人完成了批量删除 Time Machine 备份的脚本,下载该脚本,修改文件中的相关参数,即可实现对 Time Machine 的批量清理: linjer/tmcleanup.md: Script to automatically remote old Mac OSX Time Machine Backups older than a specified number of days我对这个脚本进行了简单的修改,方便在使用时直接指定参数。脚本可在如下两个链接中下载: blanboom/tmcleanup.mdScripts/Bash at master · blanboom/Scripts使用时,只需要运行 tmcleanup.sh,后面依次跟上 Time Machine 磁盘挂载路径、计算机名称、要保留的备份的天数即可。例如下面的命令,能够实现清理 /Volumes/时间机器备份/Backups.backupdb 路径下,计算机 blanboom-studio 上 30 天前的所有备份: $ sudo ./tmcleanup.sh /Volumes/时间机器备份/Backups.backupdb blanboom-studio 30 使用脚本删除 50% 的旧备份Time Machine 的一大特色功能,是智能保留备份的历史版本。对于近期的备份,保留尽可能多的版本,而对于早期备份,只保留每月版本: Time Machine 的备份版本保留策略 但是,Time Machine 只能做到保留旧备份的每周备份。如果想要实现保留一年前的每两周备份、或者保留一年前的每月备份,Time Machine 就无能为力了。 上文的脚本经过简单的修改,就可以在删除旧备份时,每两条备份中只删除一条,而不是全部删除。这样就实现了保留 50% 的旧备份。 当然,也可以根据自己的需求修改脚本或组合使用,实现保留 25%,或者保留 75% 的旧备份。 修改后的脚本也已经上传到我的 GitHub 仓库,使用上文链接中的 tmcleanup_50percent.sh,即可实现清除 50% 的旧备份: # 删除三个月前 50% 的备份(保留三个月前每两周备份) $ sudo ./tmcleanup.sh /Volumes/时间机器备份/Backups.backupdb blanboom-studio 90 # 连续两次运行脚本,实现删除一年前 75% 的备份(保留一年前的每月备份) $ sudo ./tmcleanup.sh /Volumes/时间机器备份/Backups.backupdb blanboom-studio 365 $ sudo ./tmcleanup.sh /Volumes/时间机器备份/Backups.backupdb blanboom-studio 365 使用 BackupLoupe 深入分析 Time Machine 空间占用情况上述脚本能够做到方便地删除旧备份。但是,想要更加深入地分析 Time Machine 的空间占用情况,进行针对性的清理,就要用到 BackupLoupe 了: BackupLoupe: One Stop Shop for Time MachineBackupLoupe 可以实现如下两点功能: 分析哪些备份占用空间较大,从而做到删除占用空间大的备份分析备份中,哪些文件和目录占用空间大,从而做到删除备份中占用空间大的文件(例如 Steam 游戏库、大型 App、虚拟机、iOS 模拟器、视频文件等)通过针对性地删除占用备份中不重要的大文件,可以腾出空间让 Time Machine 保存重要文件(例如个人文档、照片等)的更多历史版本,从而更充分地利用 Time Machine 存储空间。 BackupLoupe 的使用也很简单,打开 BackupLoupe,建立索引后,就可以看到每一个备份、以及备份中的每个目录的空间占用情况: BackupLoupe 中,能够显示所有历史备份的占用空间不过 BackupLoupe 本身只提供分析功能,并没有自带清理功能。关于如何清理备份中指定的文件或目录,可参考这篇文章: Time Machine 使用教程(六):如何手动删除 Time Machine 备份 – 少数派备注: 题图来源:https://unsplash.com/photos/hL8slYnc-bM本文同时发布在我的博客,欢迎关注:https://blanboom.org/2020/timemachine-cleanup/ |
CopyRight 2018-2019 实验室设备网 版权所有 |