系统学习 macOS 学习路径:从 BSD 文件命令到系统、网络与开发维护

tmutil

管理 Time Machine 备份、目标磁盘、本地快照与排除项。

补充说明

Time Machine 由 backupd 执行,tmutil 是它的控制入口:status 看进度,startbackup/stopbackup 控制一次备份,destinationinfo 看目标盘,latestbackup/listbackups 定位备份,compare 对比差异。APFS 卷上的本地快照可用 listlocalsnapshots / 查看,用 deletelocalsnapshots 删除。

边界:本地快照不是完整备份,只保留最近一段时间的变化,磁盘压力大时会被系统自动删除,也不能用来启动或换机迁移。备份盘上的历史副本同样按保留策略合并:每小时备份保留 24 小时,之后按天、按周保留。排除项只影响之后的备份,不会删除已有副本。

常用示例

# 1. 查看是否正在备份、进度和上次完成时间
% tmutil status

# 2. 查看备份目标及当前是否可用
% tmutil destinationinfo

# 3. 手动启动一次自动备份,并等待结束
% sudo tmutil startbackup --auto --block

# 4. 列出最近的备份和本地快照
% tmutil latestbackup
% tmutil listbackups | tail -5
% tmutil listlocalsnapshots /

# 5. 检查并排除构建产物,避免占满备份盘
% tmutil isexcluded ~/Projects/app/build
% tmutil addexclusion ~/Projects/app/build

# 6. 删除指定本地快照;先核对日期,删除后不可恢复
% tmutil listlocalsnapshots /
% sudo tmutil deletelocalsnapshots 2024-06-01-120000

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. 本地快照和 Time Machine 备份盘上的备份有什么本质区别?
  2. tmutil deletelocalsnapshots 的风险是什么?执行前要确认哪些信息?
  3. 备份目标显示不可用时,手动 startbackup --block 会怎样?应该先做什么?
答案
  1. 本地快照只是同一磁盘上的短期恢复点,会因磁盘压力被自动删除;备份盘上的副本才是独立介质,可换机恢复。
  2. 删除不可恢复,传入宗卷会清掉该卷全部本地快照;先 listlocalsnapshots 核对日期和范围,只删明确不需要的。
  3. 会一直阻塞等待目标,脚本可能挂起;先 tmutil destinationinfo 检查目标,再决定是否启动并设置超时。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令