MacOS 上创建一个定时任务

529 阅读2分钟

在 macOS 上创建一个定时任务来执行 .sh 脚本,可以使用 launchd 。以下是详细步骤:

步骤 1:编写你的 .sh 脚本

首先,确保你的 Shell 脚本已经编写好,并具有执行权限。例如,假设你的脚本名为 myscript.sh ,路径为 /path/to/myscript.sh

sh

#!/bin/bash

echo "Hello, World!" >> /path/to/output.txt

确保脚本具有执行权限:

sh

chmod +x /path/to/myscript.sh

步骤 2:创建 Launch Agent Property List 文件

创建一个 .plist 文件来配置 launchd ,例如 com.example.myscript.plist

sh

touch ~/Library/LaunchAgents/com.example.myscript.plist

编辑这个文件并添加以下内容:

xml

<plist version="1.0">

<dict>

   

    <key>Label</key>

    <string>com.example.myscript</string>

   

    <key>ProgramArguments</key>

    <array>

        <string>/path/to/myscript.sh</string>

    </array>

   

    <key>StartInterval</key>

    <integer>1500</integer>

   

    <key>RunAtLoad</key>

    <true/>

</dict>

</plist>

注意:

  • Label:任务的唯一标识符。可以使用类似 com.example.myscript 的格式。
  • ProgramArguments:脚本的路径,请替换为你的实际脚本路径。
  • StartInterval:执行间隔时间(以秒为单位),25分钟等于 1500 秒。
  • RunAtLoad:确保在加载时立即运行任务。

步骤 3:加载配置文件

将 .plist 文件移动到 ~/Library/LaunchAgents/ 目录下:

sh

mv ~/Library/LaunchAgents/com.example.myscript.plist ~/Library/LaunchAgents/

使用 launchctl 加载任务:

sh

launchctl load ~/Library/LaunchAgents/com.example.myscript.plist

步骤 4:验证任务是否成功加载

你可以使用以下命令查看任务是否已加载:

sh

launchctl list | grep com.example.myscript

如果任务已正确加载,你会在输出中看到任务的标识符 com.example.myscript

步骤 5:卸载任务

如果你需要卸载任务,可以使用以下命令:

sh

launchctl unload ~/Library/LaunchAgents/com.example.myscript.plist

全部步骤总结

  1. 编写你的 Shell 脚本并确保它具有执行权限。
  2. 创建一个 .plist 文件来配置 launchd。
  3. 将 .plist 文件移动到 ~/Library/LaunchAgents/ 目录下。
  4. 使用 launchctl load 命令加载任务。
  5. 验证任务是否成功加载。

完成这些步骤后,你的 Shell 脚本将每隔 25 分钟在 macOS 上自动执行一次。