mac定时关机前自动备份需手动构建“备份→延时→关机”链:快捷指令法图形化操作,用rsync备份后等待60秒再关机;launchd法通过本地快照实现无硬盘备份;系统计划+日历提醒法则轻量零编码,依赖人工执行。

Mac系统设置定时关机前先备份,需确保关键数据在关机动作触发前完成保存,避免因未保存文档或同步中断导致丢失;系统原生不提供“关机前自动备份”联动机制,必须手动构建备份→延迟→关机的可靠执行链。
用“快捷指令”实现关机前自动备份并延时关机
该方案图形化操作、无需终端权限,适合日常用户,且能明确控制备份完成后再执行关机。
第一步:打开“快捷指令”应用→点击右上角“+”→选择“自动化”→点击“创建个人自动化”。
第二步:选择“特定时间”作为触发条件→设定你希望开始执行流程的时间(例如22:45),勾选“重复”并设为“每天”→点击“下一步”。
第三步:关闭“运行前询问”开关→点击“添加操作”→搜索“运行脚本”→选择“运行Shell脚本”→在脚本框中粘贴以下命令:
【rsync -av --delete ~/Documents/ /Volumes/BackupDrive/Documents/ && rsync -av --delete ~/Desktop/ /Volumes/BackupDrive/Desktop/】
注意:请将 /Volumes/BackupDrive 替换为你实际外接硬盘或网络卷的挂载路径,路径错误会导致备份失败且无提示;可先在终端中执行 ls /Volumes 确认名称。
第四步:再次点击“添加操作”→搜索“等待”→选择“等待”→设为“60秒”(确保备份有足够时间写入完成)。
第五步:再点“添加操作”→搜索“运行AppleScript”→输入:osascript -e 'tell app "System Events" to shut down'→点击“下一步”→“完成”。
用终端+launchd配置每日关机前执行Time Machine本地快照
此方法利用系统级快照机制,在关机前1分钟触发一次本地快照(.MobileBackups),不依赖外接硬盘,适用于仅需恢复最近几小时文件的场景。
方法一:启用本地快照并绑定关机前触发
在终端中执行:sudo tmutil enablelocal → 确保本地快照已开启。
方法二:创建关机前快照脚本
新建文件 ~/bin/pre-shutdown-snapshot.sh,内容为:#!/bin/bash\ntmutil localsnapshot → 运行 chmod +x ~/bin/pre-shutdown-snapshot.sh。
方法三:修改原有时限关机plist,插入快照调用
在原 com.user.autoshutdown.plist 的
注意:YOURUSERNAME 必须替换成你当前用户名,漏改将导致脚本路径失效,快照不会执行。
通过系统设置调度+手动预设备份提醒
这是最轻量、零编码的方式,适用于习惯固定时间操作、且备份频率较低的用户。
打开“系统设置”→“电池”或“节能器”→点击右下角“计划…”→勾选“关机”,设为每天23:00。
然后在“日历”中新建一个重复事件,时间设为22:50,标题写“⚠️ 手动备份:Documents + Desktop”,描述栏粘贴命令:rsync -av ~/Documents/ /Volumes/MyBackup/Documents/。
开启“日历提醒”通知,并在“设置→通知→日历”中将提醒方式设为“横幅+声音”,确保不会错过。
这一步操作起来很简单,直接把文件拖进去就行。











