安装在crontab下的脚本没有运行

时间:2012-05-16 09:38:33

标签: linux shell unix cron crontab

我一直在编写管家脚本,现在我需要在分段和生产环境中安装管家脚本作为cronjob。我可以在没有问题的情况下在分段上完成它并且它给了我预期的输出。当我在制作中运行它时,相同的脚本不会变成cronjob.following是我安装的cronjob。

#OTB housekeeper scripts
* * * * * /product/susara/tools/housekeeper.sh -t OTB > /tmp/susara.out 2>&1

这就是我所做的,以找出它为什么不在生产

  1. 检查cronjob守护程序是否正在运行。 当我检查它时,得到以下输出,并说,cronjob deamon正在运行
  2.   

    ps ax | grep cron

    输出

     4120 ?        Ss     0:06 crond
    13640 pts/6    S+     0:00 grep cron
    
    1. 检查cron作业日志
    2. 这些日志位于/ log / var中 有一些名为cron cron.1 cron.2等的日志文件。

      这些日志的内容并不能帮助我解决问题。我很难理解它的内容。

      May 16 08:01:01 pr2vmx08 crond[17471]: (root) CMD (run-parts /etc/cron.hourly)
      May 16 08:08:22 pr2vmx08 crontab[17180]: (user1) REPLACE (user1)
      May 16 08:08:22 pr2vmx08 crontab[17180]: (user1) END EDIT (user1)
      May 16 08:09:01 pr2vmx08 crond[4162]: (user1) RELOAD (cron/user1)
      May 16 08:10:01 pr2vmx08 crond[17762]: (root) CMD (/usr/lib64/sa/sa1 1 1)
      May 16 08:20:01 pr2vmx08 crond[18229]: (root) CMD (/usr/lib64/sa/sa1 1 1)
      

      这两个步骤并没有帮助我解决问题。任何有这方面经验的人都能让我知道这里出了什么问题。

      提前感谢您提供任何帮助

2 个答案:

答案 0 :(得分:1)

我首先会检查一些事情:

  1. 文件/tmp/susara.out的内容是什么?这个文件是根本写的吗?使用命令

    tail -f /tmp/susara.out

    查看正在写入此文件的内容;

  2. 检查生产机器下脚本/product/susara/tools/housekeeper.sh的权限;使用命令

    ls -al /product/susara/tools/housekeeper.sh

  3. 这个脚本应该每分钟运行一次吗?

  4. 检查文件/ var / log / messages上可能出现的错误消息

  5. 此致

答案 1 :(得分:1)

cron日志表示括号之间的日期,机器名称,进程和一些内核“pid”,然后用户在括号之间,以及括号之间的命令行,在“CMD”之后。

如果你grep你的脚本名称,你应该看到一些行,如果它每分钟执行一次,给定all-asterisk参数。但也许“正确”的日志文件可能是syslog(。*),但也许不是,因为这个显然已经记录了cron。

此外,我认为如果此脚本包含对命令或其他不在标准PATH环境变量中的脚本的调用,则它可能无法正常工作。我的“用户”crontab发生在我身上,我在crontab中添加了正确的PATH行,它开始工作了。我有这样的印象,即我必须通过这种特殊的更改来重新启动cron,而不像普通的调度行中的简单更改。