crontab

作者: longgb246 | 来源:发表于2018-12-15 18:59 被阅读0次

    使用crontab:
    minute hour day month dayofweek command
    参数:

    minute — 分钟,从 0 到 59 之间的任何整数
    hour — 小时,从 0 到 23 之间的任何整数
    day — 日期,从 1 到 31 之间的任何整数(如果指定了月份,必须是该月份的有效日期)
    month — 月份,从 1 到 12 之间的任何整数(或使用月份的英文简写如 jan、feb 等等)
    dayofweek — 星期,从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日(或使用星期的英文简写如 sun、mon 等等)
    command — 要执行的命令(命令可以是ls /proc >> /tmp/proc 之类的命令,也可以是执行你自行编写的脚本的命令。)
    在以上任何值中,星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在满足其它制约条件后每月都执行该命令。
    整数间的短线(-)指定一个整数范围。譬如,1-4 意味着整数 1、2、3、4。
    用逗号(,)隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明这四个指定的整数。
    正斜线(/)可以用来指定间隔频率。在范围后加上 /<integer> 意味着在范围内可以跳过 integer。譬如,0-59/2 可以用来在分钟字段定义每两分钟。间隔频率值还可以和星号一起使用。例如,*/3 的值可以用在月份字段中表示每三个月运行一次任务。
    开头为井号(#)的行是注释,不会被处理。

    0 14 * * * /usr/local/bin/python2.7 /xxx.py > /yyy.log 2>&1 &
    

    用户登陆Linux操作系统的时候,"/etc/profile", "/.bash_profile"等配置文件会被自动执行。执行过程是这样的:登陆Linux系统时,首先启动"/etc/profile",然后启动用户目录下的"/.bash_profile",如果"/.bash_login"和"/.profile"文件存在的时候也会在执行"~/.bash_profile"后被依次调用。
    可是在运行crontab的时候,是non_login方式调用程序的,此时/.bash_profile并不会被提前调用。所以,crontab的运行环境相对于login方式进入bash运行的环境来说小得多。如果程序涉及/.bash_profile使用的环境变量,那么,部分在login方式可以正常运行的程序在crontab下就无法运行。
    终极推荐解决方案:

    30 12 * * * source ~/.bashrc && cd /home/work/mydir && ./myproj
    

    参考:
    http://www.cnblogs.com/simplelogic/p/3287911.html

    相关文章

      网友评论

          本文标题:crontab

          本文链接:https://www.haomeiwen.com/subject/ionahqtx.html