zoukankan      html  css  js  c++  java
  • crontab执行java命令失效

    一、我们常常碰到在shell下执行某个命令能够成功,比如执行一个java程序:

    java -jar /home/opscoder/topo-audit.jar,但是在crontab下执行会失败。

    cornjob为 0 10 * * * java -jar /home/opscoder/topo-audit.jar: 即每天10点去执行这个jar中的main方法

    二、查找失败的原因,即查看crotab的执行log, 有如下3种方法,我所用的是ubantu的机器,使用的是方法1、 mail任务(Linux UNIX)在 /var/spool/mail/root 文件中,有crontab执行日志的记录,用tail -f /var/spool/mail/root 即可查看最近的crontab执行情况。

    2、针对UINX系统查询方法(AIX、HP-UX)

    在 /var/spool/cron/tmp文件中,有croutXXX00999的tmp文件,tail 这些文件就可以看到正在执行的任务了。

    3、针对Linux系统的查询方法(含Redhat、SUSE)

    看 /var/log/cron这个文件就可以,可以用tail -f /var/log/cron观察

    配图为系统aix root用户默认的crontab

    三、针对我的情况,从log中可以看出是/bin/sh: java command not found

    这就说明了cron使用的环境变量不是系统的环境变量,而是自己的环境变量,说白了,就是crontab不能读取到/etc/profile下的信息。

    四、解决方法:

    1、修改crontab来调用一个脚本,而不是直接执行这个jar

    即将:cornjob为 0 10 * * * java -jar /home/opscoder/topo-audit.jar

    修改为:0 10 * * * /home/opscoder/topo-check.sh

    2、创建topo-check.sh

    touchtopo-check.sh   #创建topo-check.sh文件
    vi topo-check.sh         #编辑topo-check.sh文件,并输入如下内容


    #!/bin/bash
    source /etc/profile
    java -jar /home/opscoder/topo-audit.jar


    保存退出。
    chmod +x topo-check.sh    #给topo-check.sh可执行权限

    这样就大功告成了,需要注意的是需要加上#!/bin/bash,不然crontab可能还是不能执行成功,使用如上的3中方法之一来查看crontab的log,你会发现类似: /bin/sh command /home/opscoder/topo-check.sh not found

    附:如果当前用户不能启动crontab,可以使用具有sudo权限或者具有启动权限(service)的用户先启动crontab(service cron status, service cron start, service cron start),然后再切回该用户创建或者cron job(crontab -e)

  • 相关阅读:
    Balance的数学思想构造辅助函数
    1663. Smallest String With A Given Numeric Value (M)
    1680. Concatenation of Consecutive Binary Numbers (M)
    1631. Path With Minimum Effort (M)
    1437. Check If All 1's Are at Least Length K Places Away (E)
    1329. Sort the Matrix Diagonally (M)
    1657. Determine if Two Strings Are Close (M)
    1673. Find the Most Competitive Subsequence (M)
    1641. Count Sorted Vowel Strings (M)
    1679. Max Number of K-Sum Pairs (M)
  • 原文地址:https://www.cnblogs.com/zhangshiwen/p/6263933.html
Copyright © 2011-2022 走看看