gpt4 book ai didi

linux - 我的 crontab 有问题吗?

转载 作者:太空宇宙 更新时间:2023-11-04 11:20:39 25 4
gpt4 key购买 nike

我要创建一个 crontab 任务来安排我的任务。

我的 /etc/crontab 看起来是这样的,

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
17 15 * * * root sh /opt/app/tool/ReviewSummaryTool/runf.sh

任务脚本 runf.sh 的内容如下所示,

#!/usr/bin/env bash

java -Dhostname=$(hostname) -jar ReviewSummaryTool.jar -full

但是时间到了,crontab 任务无法执行(我检查了输出日志)。

但是,任务脚本可以通过下面的命令执行,

sh /opt/app/tool/ReviewSummaryTool/runf.sh

而且我在/var/log/cron查看了crontab的日志,好像任务已经执行了。请参阅下面的简要日志内容,

Aug 31 15:17:01 SSECBIGDATA01 crond[1677]: (*system*) RELOAD (/etc/crontab)
Aug 31 15:17:01 SSECBIGDATA01 CROND[29248]: (root) CMD (sh /opt/app/tool/ReviewSummaryTool/runf.sh)

现在,我不知道我的配置有什么问题。我的操作系统是 CentOS。

如有任何帮助,我们将不胜感激。提前致谢。

最佳答案

出于调试目的,在 crontab 条目中将 sh 替换为 /bin/sh -vx:

 17 15 * * * root /bin/sh -vx /opt/app/tool/ReviewSummaryTool/runf.sh

然后将打印执行脚本的踪迹,通过电子邮件发送给您。

并在 runf.sh 脚本中添加 logger 命令,例如让它成为

 #!/bin/sh
logger -t runfjob start of runf pid $$ in $(pwd) on host $(hostname)
java -Dhostname=$(hostname) -jar ReviewSummaryTool.jar -full
logger -t runfjob end of runf pid $$

logger 命令使用 syslog(3) 将条目添加到系统日志中。您应该在 /var/log 下找到这些消息,也许在 /var/log/messages/var/log/syslog 等中。 .

我强烈建议将 ReviewSummaryTool.jar 文件的完整路径放在 runf.sh 脚本的 java 命令中。您的 cronjob 很可能在没有该文件的当前目录中运行。或者在 java 之前放一个 cd 命令。

确保 $PATH 是正确的并且在那里可以找到 java

关于linux - 我的 crontab 有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18545797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com