zoukankan      html  css  js  c++  java
  • crontab定期执行shell脚本

    【场景】:

    需要定期运行Hadoop的MapReduce

    【解决办法】:

    编写一个运行MapReduce的Shell脚本。然后使用crontab配置定时任务。

    【Shell脚本】

    #!/usr/bin/env bash
    source /etc/profile
    echo "TimeLimitDrawn Start"
    hadoop jar $HADOOP_HOME/package/mr_post-1.0-SNAPSHOT-jar-with-dependencies.jar com.hdyh.mapreduce.TimeLimitDrawn >> /home/hadmin/hadoop/shell/mr.log
    echo "TimeLimitDrawn End"

     

    【定时任务】

    *  *  */1  *  *  sh /home/hadmin/hadoop/package/TimeLimitDraw.sh

    【crontab使用说明】

    crontab –u    //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
    crontab –l     //列出某个用户cron服务的详细内容
    crontab –r    //删除某个用户的cron服务
    crontab –e    //编辑某个用户的cron服务

    crontab 文件中的行由6个字段组成,不同字段间用空格或tab键分隔。前5个字段指定命令要运行的时间
    ①分钟(0-59)
    ②小时(0-23)
    ③日期(1-31)
    ④月份(1-12)
    ⑤星期几(0-6,其中0代表星期日,好像7也代表星期日)
    ⑥一个要在适当时间执行的字符串。

    例子:
    #MIN      HOUR     DAY       MONTH  DAYOFWEEK       COMMAND
    #每天早上6点10分
    10    6     *     *     *     date

    #每两个小时
    0     */2   *     *     *     date

    #晚上11点到早上8点之间每两个小时,早上8点
    0     23-7/2,8      *     *     *     date

    #每个月的4号和每个礼拜一到礼拜三的早上11点
    0     11    4     *     1-3  date

    #1月1日早上4点
    0     4     1     1       *  date

    让配置文件生效:如果让配置文件生效,还得重新启动cron,切记,既然每个用户下的cron配置文件修改后,也要重新启动cron服务器。

    注意:如果要定期执行某个Shell命令的时候,一定要注意以下两点:

    ①、shell脚本要有-x(可执行)的权限

    ②、shell脚本可以被正确执行,但是hadoop命令无法运行时,多数情况都是因为环境变量的原因,可以在Shell脚本中使用source /etc/profile来使环境变量生效。

    ③、如果设置的是整点运行,按照下面错误的写法,会在7点开始执行很多次命令。

    错误的写法:*  7  *  *  *  sh /home/hadmin/hadoop/package/TimeLimitDraw.sh

    正确的写法:0  7  *  *  *  sh /home/hadmin/hadoop/package/TimeLimitDraw.sh

    ④、有时因为找不到文件或者权限问题无法正确执行时,系统会生成一个文件【/var/spool/mail/[用户名]】、 如:/var/spool/mail/root

    在这个文件中有时可以找到一些有用的线索。

    --end--

  • 相关阅读:
    插入数据失败提示: Setting autocommit to false on JDBC Connection 自动提交失败
    MyBatis XML配置properties
    mybatis 测试输出SQL语句到控制台配置
    原创:mysql5 还原至mysql 8.0.11数据库链接配置提示错误(修改内容有三处
    idea 快捷键汇总
    maven依赖配置和依赖范围
    pom.xml 配置 收藏
    单词的提取
    UVA10815 安迪的第一个字典 Andy's First Dictionary
    UVA11054 Gergovia的酒交易 Wine trading in Gergovia
  • 原文地址:https://www.cnblogs.com/quchunhui/p/5519850.html
Copyright © 2011-2022 走看看