Mac关机前自动备份需借助Automator、launchd、日历事件或快捷指令实现:一、Automator创建含tmutil startbackup的工作流;二、launchd监听shutdownInitiated信号触发备份;三、日历高频提醒+AppleScript检测空闲态执行备份;四、快捷指令整合备份与关机动作。

如果您希望 Mac 在每次关机前自动执行一次完整备份,但系统默认的时间机器机制并不支持关机触发式备份,则可能是由于未借助 Automator 与系统关机事件进行联动。以下是实现关机前自动备份的多种可行配置方法:
一、使用 Automator 创建关机前触发的备份工作流
此方法通过构建一个可被系统关机流程调用的 Automator 工作流,利用 macOS 的“关机前运行脚本”机制(需配合 launchd 或日历提醒模拟),在用户选择关机时提前启动时间机器备份。该工作流不依赖第三方工具,仅使用系统原生组件。
1、打开“应用程序”文件夹,启动 Automator。
2、在新建文档窗口中选择“工作流”类型,点击“选取”。
3、在左侧操作库中搜索“运行 Shell 脚本”,将其拖入右侧工作区。
4、在脚本框中输入:tmutil startbackup --auto。
5、继续添加“暂停”操作,设置暂停时间为30秒,确保备份有足够时间初始化。
6、保存该工作流,命名为“关机前备份”,位置设为~/Library/Workflows/。
二、通过 launchd 配置关机前守护进程
此方法直接监听系统关机信号(com.apple.loginwindow.shutdownInitiated),并在收到信号后立即调用 tmutil 启动备份。它绕过图形界面限制,具备更高可靠性,适用于 macOS Ventura 及更新版本。
1、在“访达”中按 Command+Shift+G,输入 ~/Library/LaunchAgents/ 并回车。
2、新建文本文件,命名为 com.user.pre-shutdown-backup.plist。
3、用文本编辑器打开该文件,粘贴以下内容:
4、保存文件后,在终端中执行:launchctl load ~/Library/LaunchAgents/com.user.pre-shutdown-backup.plist。
5、确认加载成功:运行 launchctl list | grep pre-shutdown,应返回对应条目。
三、利用日历事件模拟关机前触发
此方法适用于无法直接写入 WatchPaths 或权限受限的用户环境。它通过创建一个高频重复的日历事件,并将提醒方式设为“运行脚本”,在检测到系统即将关机的典型时间窗(如用户连续 5 分钟无操作后)主动触发备份。
1、打开“日历”应用,新建一个日历,命名为“系统维护”。
2、创建新事件,标题为“关机前备份检查”,设置开始时间为当前时间后 1 分钟。
3、在“重复”选项中选择“每 5 分钟”,并勾选“永不结束”。
4、展开“提醒”区域,点击“添加提醒”,选择“运行脚本”,然后浏览并选取第一步中保存的“关机前备份.workflow”文件。
5、在该工作流中新增一个“运行 AppleScript”操作,输入以下代码以判断系统负载是否处于关机准备态:
tell application "System Events"
set idleTime to (get the idle time of system events) / 60
if idleTime ≥ 5 then
do shell script "tmutil startbackup --auto"
end if
end tell
四、通过快捷指令 + Automator 快速绑定关机动作
此方法面向偏好图形化操作的用户,利用快捷指令作为中间层,将关机操作重定向为“先备份再关机”。它不修改系统底层行为,但要求用户养成通过快捷指令入口执行关机的习惯。
1、打开“快捷指令”应用,点击右上角“+”新建快捷指令。
2、点击“添加操作”,搜索并添加“运行 Automator 工作流”,然后选取“关机前备份.workflow”。
3、继续添加“暂停”操作,设置为45秒,等待备份进入活跃状态。
4、添加“关机”操作(需在快捷指令设置中开启“允许快捷指令控制你的电脑”权限)。
5、点击右上角“…”,启用“在主屏幕显示”,并将图标设为电源符号。
6、此后每次关机,均需点击该快捷指令图标而非使用苹果菜单中的关机选项。



















