• mac系统上添加定时任务


    mac系统上的定时任务用launchctl来管理

    先写要执行的脚本run.sh:

    ```

    #!/bin/bash
    echo `date` > $HOME/test_result.log

    ```

    再写调度任务的plist文件task.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.xyz.test</string>

    <!-- 要运行的程序, 如果省略这个选项,会把ProgramArguments的第一个
    元素作为要运行的程序 -->
    <key>Program</key>
    <string>/Users/xyz/test.sh</string>

    <!-- 命令, 第一个为命令,其它为参数-->
    <key>ProgramArguments</key>
    <array>
    <string>/Users/xyz/test.sh</string>
    </array>

    <!-- 运行时间 -->
    <key>StartCalendarInterval</key>
    <dict>

    <key>Minute</key>
    <integer>10</integer>

    <key>Hour</key>
    <integer>17</integer>

    </dict>

    <!-- 标准输入文件 -->
    <key>StandardInPath</key>
    <string>/Users/xyz/test-in.log</string>

    <!-- 标准输出文件 -->
    <key>StandardOutPath</key>
    <string>/Users/xyz/test-out.log</string>

    <!-- 标准错误输出文件 -->
    <key>StandardErrorPath</key>
    <string>/Users/xyz/test-err.log</string>

    </dict>
    </plist>

    ```

    然后再添加到执行列表中

    ```

    launchctl load task.plist

    ```

    就可以了

    注意一点:系统在自动运行shell脚本时是不会加载任何环境变量的,所以可能出现自己手工运行脚本正常,但是在调度任务中出错。这种情况需要导入环境变量来解决,如果不知道需要导入哪些环境变量,最简单的方法是直接导入所有环境变量的配置文件,如果使用的shell是bash,可以在运行脚本中加入如下一句:

    source ~/.bashrc

    plist文件的详细内容参考:

    http://blog.csdn.net/lgt633744/article/details/45932035

    http://www.tuicool.com/articles/beeUNvq

  • 相关阅读:
    shell进行mysql统计
    java I/O总结
    Hbase源码分析:Hbase UI中Requests Per Second的具体含义
    ASP.NET Session State Overview
    What is an ISAPI Extension?
    innerxml and outerxml
    postman
    FileZilla文件下载的目录
    how to use webpart container in kentico
    Consider using EXISTS instead of IN
  • 原文地址:https://www.cnblogs.com/tuochao/p/5656213.html
Copyright © 2020-2023  润新知