zoukankan      html  css  js  c++  java
  • Linux上启动Cron任务

     

    cron是一个Linux下的定时执行工具,无需人工干预,与quartz上的cron表达式稍有不同。由于cronLinux上的内置基础服务,并不是所有服务器都是默认启动该服务的,如果没有启动可以使用下面的命令:

     

    sudo service cron restart/start/stop

     

     

    使用命令crontab –l 可以显示出当前用户cron服务的详细内容。

     

    使用命令crontab –e 可以打开默认的编辑当前用户cron服务的编辑器,这里假设使用一个最简单的shell

     

    #!/bin/bash
    echo “$(date +%Y-%m-%d %H:%M:%S)”

     

     

    这个简单的shell只是会打印出当前时间,这也用于我们检测该命令是cron服务在什么时间调用的。

     

    我们使用crontab –e 将这个命令加入

    * * * * * cd /home/...; ./test_cron.sh >> /tmp/test_cron.log 2>&1

      

    注意,最好将所有的输出都定向到指定的文件中(使用2>&1的方式可以将错误信息输出到同样的流中)。这样,本shell就会在每分钟都会执行一次。

     

    Crontab中的设置

     

    设置的前一部分是对时间的设定,后面一部分是要执行的命令。如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径,因为有些环境变量并不能带过来。时间的设定有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:

    分钟 (0-59) 

    小時 (0-23) 

    日期 (1-31)
    月份 (1-12) 

    星期 (0-6)//0代表星期天

     

    除了数字还有几个个特殊的符号就是"*""/""-"","*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。以下举几个例子说明问题:

    每天早上6

    0 6 * * * echo "Good morning." >> /tmp/test.txt

     

    每两个小时:

    0 */2 * * * echo "Every 2 hours" >> /tmp/test.txt

     

    晚上11点到早上8点之间每两个小时,早上八点

    0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt

     

    每个月的4号和每个礼拜的礼拜一到礼拜三的早上11

    0 11 4 * 1-3 command line

     

     

    11日早上4

    0 4 1 1 * command line

     

     

    在每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。

     

    cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令,因此此文件修改后不需要重新启动cron服务。

     

  • 相关阅读:
    js函数——倒计时模块+无缝滚动
    一步步编写avalon组件02:分页组件
    mvc5+ef6+Bootstrap 项目心得--身份验证和权限管理
    只用css实现“每列四行,加载完一列后数据自动填充到下一列”的效果
    某考试 T1 arg
    vijos 2035 奇数偶数与绚丽多彩的数
    bzoj 5093: [Lydsy1711月赛]图的价值
    [HEOI2016/TJOI2016]求和
    [TJOI2015]概率论
    Codeforces 616 E Sum of Remainders
  • 原文地址:https://www.cnblogs.com/mmaa/p/5789930.html
Copyright © 2011-2022 走看看