zoukankan      html  css  js  c++  java
  • crontab定时调度shell脚本

    本人最近要用crontab做一个定时调度任务,调一个启动脚本去执行jar包,并给main方法传一个日期参数。

    Linux系统:CentOS7

    输入:

    crontab -e
    

    在里面编写:

    SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    
    #分 时 天 月 星期     脚本路径
    05 15 * * * /bin/sh /data/IPPParser/startup_cyc.sh
    

    意思就是每天下午15:05 去执行startup_cyc.sh这个脚本。

    脚本的内容: 

    #使JAVA_HOME生效
    source /root/.bash_profile
    #进入项目根路径
    cd /data/IPPParser
    #!/bin/sh
    
    if [ -z "$JAVA_HOME" ]; then
    echo "Please configure the JAVA_HOME!"
    exit
    fi
    
    JAVA_OPTION="-Dfile.encoding=UTF-8 -Xmx256M -Xms256M"
    #jar包名称
    JAR_NAME=ippparser.jar
    #传的参数
    PARSE_DATE=`date -d "yesterday" +%Y%m%d`
    #调用jar包命令
    java $JAVA_OPTION -jar $JAR_NAME $PARSE_DATE

    问题汇总:

    一.crontab不生效,需要检查的地方

    1.检查cron状态

    service crond status
    

     可以看到crontab是active状态

    如果不是这个状态,说明crontab没有启动。

    重启:systemctl restart crond

    2.检查cron是否有调用shell命令

    可以看到cron在15:05有调用脚本。

    3.cron调用了命令,但是没生效(如:手动调脚本可以执行,但是cron调用不行)

    看cron邮件: cat /var/spool/mail/root

    说明我们的程序已经成功调用。如果有错误会打印出来。

    4.找不到无法加载主类

    一般是相对路径问题,打印一下路径,检查是否正确。

    5.crontab调用时,自己是检测不到jJAVA_HOME的,需要在脚本里加上 source /root/.bash_profile,这样才能找到你的JAVA_HOME。

      

     

  • 相关阅读:
    矩阵树定理
    随机乱搞算法
    数学
    BZOJ——3412: [Usaco2009 Dec]Music Notes乐谱
    BZOJ—— 3402: [Usaco2009 Open]Hide and Seek 捉迷藏
    洛谷—— P2884 [USACO07MAR]每月的费用Monthly Expense
    洛谷—— P2417 课程
    洛谷—— P1577 切绳子
    COGS 2598. 美丽的感觉
    10.23 模拟赛
  • 原文地址:https://www.cnblogs.com/lingluo2017/p/10161301.html
Copyright © 2011-2022 走看看