Macbook Pro 设置定时任务

    如果你想在MacBook Pro上设置定时任务,可以使用内置的工具 "cron" 或 "launchd"。

    以下是如何使用这两个工具的简要说明:

    1. 使用 cron 设置定时任务

    1. 打开 Terminal(终端)。
    2. 输入 crontab -e 来编辑你的cron表。
    3. 在打开的编辑器中,添加你的定时任务。Cron表的格式为:
    * * * * * /path/to/command args
    

    其中每个星号代表:

    • 分钟 (0 - 59)
    • 小时 (0 - 23)
    • 一个月的某天 (1 - 31)
    • 月份 (1 - 12)
    • 一个星期的某天 (0 - 6) (0代表星期天)

    例如,如果你每天上午9点30分想运行一个脚本 /path/to/my-script.sh,则你可以这样写:

    30 9 * * * /path/to/my-script.sh
    
    1. 保存并退出编辑器。

    2. 使用 launchd 设置定时任务

    1. 创建一个plist文件,例如 com.mytask.plist
    2. 在plist文件中,添加如下内容:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.mytask</string>
        <key>ProgramArguments</key>
        <array>
            <string>/path/to/command</string>
            <string>arg1</string>
            <string>arg2</string>
            <!-- 其他参数 -->
        </array>
        <key>StartCalendarInterval</key>
        <dict>
            <key>Hour</key>
            <integer>9</integer>
            <key>Minute</key>
            <integer>30</integer>
        </dict>
    </dict>
    </plist>
    
    1. 将plist文件移动到 ~/Library/LaunchAgents/ 目录。
    2. 通过运行 launchctl load ~/Library/LaunchAgents/com.mytask.plist 来加载任务。

    现在,无论你选择使用哪个工具,你的MacBook Pro都已经设置了定时任务。

    Question :

    1. 使用 cron 设置定时任务. 每隔 5 分钟执行一次 python /abc.py 并将日志输出到 /Users/tmp/a.log

    Answer :

    使用 cron 定时每隔5分钟执行 python /abc.py 并将日志输出到 /Users/tmp/a.log 的步骤如下:

    1. 打开 Terminal(终端)。

    2. 输入 crontab -e 来编辑你的cron表。

    3. 在打开的编辑器中,添加以下行:

    */5 * * * * /usr/bin/python /abc.py >> /Users/tmp/a.log 2>&1
    

    这里的 */5 表示“每5分钟”。>> 用于追加输出到文件,2>&1 表示同时捕获标准输出和标准错误到相同的日志文件。

    1. 保存并退出编辑器。

    这样,/abc.py 脚本将每隔5分钟执行一次,并且所有的输出(无论是标准输出还是错误输出)都会追加到 /Users/tmp/a.log 文件中。

    请确保 python 的路径是正确的。你可以通过在终端中输入 which python 来查找 python 的完整路径,并在上面的命令中相应地替换 /usr/bin/python(如果它与实际路径不符)。

    评论栏