• linux定时任务crontab


    对于定时任务,一般记住命令和语法就可以应用了。

    1. 命令

    crontab -u 指定一个用户

    crontab -l 列出当前用户的所有定时任务

    crontab -r 删除当前用户的所有定时任务

    crontab -e 编辑当前用户的任务, 可以添加,删除一个任务,可直接用vim进行编辑。

    2. 语法

    分       小时    日        月       星期     命令

    0-59   0-23    1-31    1-12     0-6     command     (取值范围,0表示周日一般一行对应一个任务)

    几个特殊符号的含义:

      “*”     代表取值范围内的数字,
      “/”     代表”每”,
      “-”     代表从某个数字到某个数字,
       “,”    分开几个离散的数字

    知晓这些就可以自定义你想要实现的定时功能了。

    以下为一些例子:

    5 3 × × × test.sh  3点05时执行一下脚本test.sh
    ×/15 × × × × test.sh 每隔15分钟执行一下脚本test.sh
    30 8-12 * * * test.sh 每天8到12点的第30分钟执行以下脚本test.sh
    10 3,6,9 * * * test.sh 每天3点,6点,9点的第10分钟执行一下脚本test.sh

    对日,月的用法与小时分钟一样。

    3. 需要注意的问题

    (1)脚本中凡是用到路径的地方,最好使用绝对路径。脚本中若调用其他脚本,可以cd到相应脚本的路径,调用时使用 ./test2.sh 而不要直接使用test2.sh,否则会找不到该脚本。

    (2)若调用二进制命令,例如c++生成的命令,若其有链接一些动态库,如lib_boost_system.so,则要在脚本中定义LD_LIBRARY_PATH的值,export LD_LIBRARY_PATH=/lusr/local/boost/lib: ,否则命令会找不到该动态库。

    (3)还有一点是,在crontab中的任务,其运行目录是什么,我查了一些资料,有人说是当前用户的home目录,未作测试,若有需求,可以用pwd命令看一下具体的目录是什么。

    4. 还有。。。

    一般来说,使用crontab -e将任务添加进去,就可以实现定时功能了。若没有实现,则需要查看该服务是否启动,具体命令根据具体的linux系统版本去搜索,在此不列出。定时任务执行完时会发送一封邮件,若不想占据邮箱空间,可以将输出结果丢弃。使用 5 3 × × × test.sh>/dev/null 2>&1  “/dev/null 2>&1”表示先将标准输出重定向到/dev/null,然后将标准错误重定向到标准输出。

  • 相关阅读:
    WTL之CAppModule
    WTL之窗口子类化
    专业的日志系统该包含什么?
    ATL之什么是套间
    Java线程新特征之同步
    Java之用句柄操作对象
    Android之Application Fundamentals
    Android之Dev Guide
    一些思考
    WTL之窗口超类化(父类化)
  • 原文地址:https://www.cnblogs.com/sssblog/p/10143787.html
Copyright © 2020-2023  润新知