mac系统无独立定时关机日志,但所有关机事件均记录于系统日志:用last shutdown查wtmp中时间戳(保留约2~3个月),用log show配合predicate筛选pmset/脚本触发源,automator流程需在app内查看“上次运行结果”验证执行状态。

Mac系统没有独立的“定时关机历史记录”专用日志,但所有关机行为(包括通过pmset、shutdown命令或Automator设定的定时关机)都会统一写入系统底层日志,可通过终端命令精准提取真实发生的关机事件及其触发来源。
用last命令快速定位所有关机时间点
该命令直接读取/var/log/wtmp二进制日志,是获取关机时间戳最轻量、最可靠的方式,不依赖图形界面或第三方工具。
打开“访达”→按下Shift + Command + 空格调出聚焦搜索→输入“终端”并回车启动。
在终端中输入:last shutdown,按回车执行。
输出中每行末尾为关机时间(如Wed Jul 28 23:00),中间字段显示终端标识(通常为~);若某次关机由脚本触发,此处可能显示ttys001等伪终端编号。
注意:wtmp日志默认只保留最近约2~3个月记录,超过时限会被自动轮转清除,【无法恢复已轮转掉的历史】。
用log命令筛选带触发源的关机事件
统一日志系统会记录关机前的进程调用链,能区分是用户手动点击、pmset延时关机还是脚本执行shutdown命令所致。
方法一:查最近7天所有含“shutdown”关键词的日志条目
在终端中执行:log show --predicate 'eventMessage contains "shutdown"' --last 7d
方法二:精准定位由pmset触发的定时关机
执行:log show --predicate 'senderImagePath contains "pmset" AND eventMessage contains "shutdown"' --last 30d
方法三:抓取脚本类关机行为(常见于/bin/sh或/usr/bin/python调用shutdown)
执行:log show --predicate 'process == "shutdown" OR process == "sh" OR process == "python"' --last 14d | grep -i "shutdown\|halt"
这一步需手动比对时间戳与log中的process字段——若某条shutdown日志的process列为“pmset”,基本可确认为定时任务执行;若为“sh”,则大概率出自Shell脚本。
检查Automator定时工作流程的执行痕迹
如果使用“自动操作”App设置了定时关机,其运行记录不会出现在系统级日志中,但会在工作流程自身留下结果快照。
第一步:打开“自动操作”App(可在“访达→应用程序→实用工具”中找到)
第二步:在左侧边栏选中对应的工作流程 → 点击右上角“运行”按钮旁的向下箭头 → 选择“显示上次运行结果”
第三步:若该流程包含“运行Shell脚本”操作且内含shutdown命令,结果面板会显示类似shutdown: operation not permitted(权限不足)或Shutdown scheduled for...(成功调度)的实际输出
第四步:若结果为空白或显示“未运行”,说明该定时任务根本未被触发,需检查“日历提醒”或“启动时运行”等触发条件是否配置正确











