《crontab/launchctl 定时任务(macOS)》

《crontab/launchctl 定时任务(macOS)》

macOS 的 cron 目录、文件格式与 Linux 大体一致,但服务由 launchd 托管。本文记录在 Mac 上配置 crontab 定时任务的完整步骤与常见坑。

1 检查 cron 服务与 plist

# 确认 cron 的 launchd plist 存在 locate com.vix.cron # /System/Library/LaunchDaemons/com.vix.cron.plist # 确认 cron 服务在运行 sudo /usr/sbin/cron status # cron: cron already running, pid: 44190 # 若未加载,手动加载 sudo launchctl load -w /System/Library/LaunchDaemons/com.vix.cron.plist

2 编写定时任务

# 确保 /etc/crontab 存在 sudo touch /etc/crontab # 编辑当前用户任务(同 Linux) crontab -e # 示例:每天早上 10 点执行脚本 0 10 * * * /Users/<username>/work/auto-sync.sh

编辑格式:分 时 日 月 星期 命令,与 Linux 一致。默认编辑器可通过 export VISUAL=vim 调整。

3 验证任务写入

sudo ls /usr/lib/cron/tabs sudo cat /usr/lib/cron/tabs/<username> 0 10 * * * /Users/<username>/work/auto-sync.sh

任务对应的文件在 /usr/lib/cron/tabs/<username>。

4 常见问题

  • mac 上 cron 任务需要保证脚本有执行权限并打印环境变量到日志,便于排查。
  • 更「mac 原生」的方式是用 launchctl + plist(~/Library/LaunchAgents/),支持更细粒度的调度。
  • 若 cron 不生效,优先执行第 1 步的状态检查(服务被禁用是高频原因)。

5 参考

  • mac 定时任务利器 launchctl 的使用教程。
阅读 — · 全站 —
🎸 我的歌单 0 首