0

我一直在编写家政脚本,现在我需要在登台和生产环境中安装家政脚本作为 cronjob。我可以在舞台上毫无问题地做到这一点,它给了我预期的输出。当我在生产中运行它时,相同的脚本不会变成 cronjob。以下是我安装的 cronjob。

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

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

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

ps ax|grep cron

输出

 4120 ?        Ss     0:06 crond
13640 pts/6    S+     0:00 grep cron
  1. 检查 cron 作业日志

这些日志位于 /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)

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

提前感谢您的帮助

4

2 回答 2

1

我会先检查一些事情:

  1. 文件 /tmp/susara.out 的内容是什么?该文件是否正在写入?使用命令

    尾 -f /tmp/susara.out

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

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

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

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

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

问候

于 2012-05-16T10:20:25.230 回答
1

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

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

此外,我认为如果此脚本包含对不在标准 PATH 环境变量中的命令或其他脚本的调用,它可能无法正常工作/根本无法工作。我的“用户”crontab 发生了这种情况,我在 crontab 中添加了正确的 PATH 行,它开始工作。我的印象是,我必须通过这个特殊的更改实际重新启动 cron,这与正常调度行中的简单更改不同。

于 2014-05-13T04:19:01.620 回答