mac可通过automator创建“关机前备份”工作流,再用launchd监听关机信号自动触发tmutil备份,或用快捷指令整合备份与关机;三者中launchd方案最可靠,支持系统级静默执行。

你想让Mac在每天关机前自动执行一次时间机器备份,确保未同步的文件不丢失,又不想每次手动点“立即备份”再关机——系统原生不支持关机事件直接触发备份,必须通过Automator工作流或launchd守护进程把备份动作嵌入关机流程。
用Automator创建关机前自动备份工作流
这一步生成一个可被系统识别的图形化工作流,它本身不自动运行,但能被后续的launchd或快捷指令调用,是整个方案最稳定的基础环节。
打开“应用程序”文件夹 → 双击“Automator” → 新建文档时选择“工作流” → 点击“选取”。
在左侧操作库搜索栏输入“运行 Shell 脚本”,将该操作拖到右侧工作区空白处。
在脚本框中粘贴:tmutil startbackup --auto。这个命令会触发时间机器后台备份,--auto参数确保不弹窗、不阻塞,即使没有外接硬盘也会静默跳过(不会报错)。
继续添加“暂停”操作 → 设置暂停时间为【60秒】。时间不能少于45秒,否则备份可能还没真正开始就被关机中断;也不能超过120秒,否则用户等待过久容易误点取消。
点击左上角“文件”→“保存”,命名为“关机前备份”,位置选为~/Library/Workflows/(访达中按Command+Shift+G可快速跳转)。保存后关闭Automator。
用launchd配置关机信号监听并触发备份
此方法绕过图形界面限制,直接监听系统发出的关机信号(com.apple.loginwindow.shutdownInitiated),一检测到用户点击关机就立刻启动备份,可靠性最高,适用于macOS Ventura及更新版本。
第一步:在访达中按Command+Shift+G → 输入~/Library/LaunchAgents/ → 回车进入该文件夹。
第二步:新建一个纯文本文件,命名为com.user.pre-shutdown-backup.plist。
第三步:用“文本编辑”打开该文件,粘贴以下内容(注意替换其中的YOURUSERNAME为你当前登录用户名):
利用 macOS 原生能力实现本地语音识别与合成。通过 yap (Apple Speech.framework) 进行语音转文字,通过 say + ffmpeg 进行文字转语音。完全离线,无需 API 密钥。具备音质检测与智能选声功能。
第四步:回到终端,执行加载命令:launchctl load ~/Library/LaunchAgents/com.user.pre-shutdown-backup.plist。如果提示“Operation not permitted”,说明未开启完全磁盘访问权限,需前往“系统设置→隐私与安全性→完全磁盘访问”中添加“终端”App。
用快捷指令整合备份与关机动作(免终端版)
如果你不想碰终端和plist文件,可用快捷指令模拟一次“先备份再关机”的完整流程,适合日常办公场景,但需手动触发或配合日历提醒使用。
方法一:一键触发式备份+关机
打开“快捷指令”App → 点右上角“+” → 选择“快捷指令”(不是自动化)→ 命名为“备份后关机”。
点“添加操作” → 搜索“运行Shell脚本” → 粘贴:tmutil startbackup --auto & sleep 60 & sudo shutdown -h now。
点右上角“下一步” → 关闭“运行前询问” → 点“完成”。首次运行时,系统会要求授权,必须前往“系统设置→隐私与安全性→自动化→快捷指令”中开启对应权限,否则脚本卡在sudo阶段。
方法二:定时自动执行(推荐搭配日历提醒)
打开“快捷指令”App → 切换到“自动化”标签页 → 点“创建个人自动化” → 选“特定时间” → 设定为每天22:50(比目标关机时间早10分钟)→ 关闭“运行前询问”。
点“添加操作” → 搜索“运行快捷指令” → 选择你刚创建的“备份后关机” → 点右上角“完成”。
【注意:此方法依赖日历服务活跃,若Mac处于深度睡眠或断网状态,可能错过触发】










