马春杰杰博客
致力于深度学习经验分享!

macOS设置脚本定时运行以及指定间隔时间运行

用到的工具跟之前提到的脚本开机自启一样,都是Launchctl

具体步骤:

进入 /Library/LaunchDaemons 目录下:cd /Library/LaunchDaemons

创建 timing.plist 定时任务描述文件:

sudo vim timing.plist

输入以下内容:

.plist 文件标签说明:

  • Label:定时任务的名称,这里 Label 的值是com.iamwr.launchctl.demo.agent,要全局唯一,可通过:launchctl list 查看已有的定时任务
  • Program:是要运行的脚本的名称,这里是 /Users/rundouble/Desktop/run.sh
  • ProgramArguments: 脚本运行的参数,第一个是运行的命令,其余是运行需要的参数,这里是 /Users/rundouble/Desktop/run.sh,由于运行这个脚本不需要其他参数,所有只有这一个命令
  • RunAtLoad:表示加载定时任务即开始执行脚本
  • StartInterval: 定时任务的周期,单位为秒,这里 30 代表每 30s 执行一次脚本
  • StandardOutPath: 标准输出日志的路径
  • StandardErrorPath: 标准错误输出日志的路径

加载该定时任务:

launchctl load -w com.iamwr.launchctl.demo.agent.plist

-w 参数会将 .plist 文件中无意义的键值过滤掉,建议加上。

这时,定时任务已加载,由于加上了:

所以该定时任务成功加载后就开始执行,可以在 /Users/demo/run.log 看到每 30s 打印当前时间:

macOS设置脚本定时运行以及指定间隔时间运行

如果我们的目标不是每 30 秒执行脚本,而是每天固定时间执行脚本,比如每天晚上 22:00 执行脚本,那么我们需要对 .plist 文件进行如下修改:

删除:

添加:

StartInterval 标签代表每多少秒执行,StartCalendarInterval 标签代表指定时间点执行,所以这两个标签在同一个 .plist 文件中只能存在一个。StartCalendarInterval 的 key 有:

macOS设置脚本定时运行以及指定间隔时间运行

同样使用 launchctl load -w com.iamwr.launchctl.demo.agent.plist 命令可使新的定时任务运行起来,在每天 22:00 时运行。

关于Launchctl的简单介绍:

本文最后更新于2023年1月31日,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!

如果你对这篇文章有什么疑问或建议,欢迎下面留言提出,我看到会立刻回复!

打赏
未经允许不得转载:马春杰杰 » macOS设置脚本定时运行以及指定间隔时间运行
超级便宜的原生ChatGPT4.0

留个评论吧~ 抢沙发 评论前登陆可免验证码!

私密评论
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址(选填,便于回访^_^)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

登录

忘记密码 ?

切换登录

注册