zoukankan      html  css  js  c++  java
  • Crontab小记

    介绍
    crontab用来设置周期性被cron这个守护进程执行的指令的命令。
    参数有

    -l 列出当前用户的所用计划任务
    -e 编辑当前用户的计划任务
    -r 删除当前用户的计划任务
    -u 指定一个用户

    运行crontab -e会看到一个被注释了的简短教程
    这个文件里面的每一行对应一个任务,格式是

    # 文件格式说明
    # ——分钟 (0 - 59)
    # | ——小时 (0 - 23)
    # | | ——日 (1 - 31)
    # | | | ——月 (1 - 12)
    # | | | | ——星期 (0 - 7)(星期日=0或7)
    # | | | | |
    # * * * * * 被执行的命令

    注:如果日期和星期同时被设定,那么其中的一个条件被满足时,指令便会被执行。

    时间格式

    *: 表示任何时刻
    ,: 表示分割
    -:表示一个段,如第二端里: 1-5,就表示1到5点
    /n : 表示每个n的单位执行一次,如第二段里,*/3, 就表示每隔4个小时执行一次命令。也可以写成1-23/3.

    注意事项
    crontab中的命令执行的时候环境参数跟在shell中执行时是不一样的(可以打印env对比一下),所有经常对变量有要求的一些命令执行的时候可能有错误,这时候可以手动的设置这边变量的值:

    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin
    HOME=/
    
    01 * * * * cmd__

    我遇到的情况是ruby的脚本无法执行,看了下是ruby的环境参数都没有带上,通过

    /usr/bin/bash -c -l "cmd…"


    解决了问题,上面的命令是指定shell,带入当前用户的环境变量,来执行cmd语句

    还有一个工具帮你正确生成crontab的语句,whenever 

    技巧
    通过设置5个段都是*可以立即执行后面的任务,从而快速测试任务命令是否有写正确


    参考:http://zh.wikipedia.org/wiki/Cron

  • 相关阅读:
    (转)python字符串函数
    分享二:架构设计分享一:关于API分布式服务提供方式
    架构设计分享一:关于分布式系统的数据一致性问题(一)
    分享四:分布式事务设计-两段式提交
    分享三:mysql跨库查询
    PHP笔试题
    我的mysql学习心得
    linux分享一:进程全攻略--守护进程(服务)
    分享二:签名原理与算法
    linux命令详解:pgrep命令
  • 原文地址:https://www.cnblogs.com/v2m_/p/3109523.html
Copyright © 2011-2022 走看看