解决无法启动的 cron 问题的最佳方法是什么?

解决无法启动的 cron 问题的最佳方法是什么?

继续Stackoverflow 问题,我有一个 .sh,它尝试(1)运行一个设置环境变量的脚本,然后(2)运行一个 php 脚本。

crontab 条目(已尝试过有和无>>输出):

 */1 * * * * /home/user/public_html/domain.com/private/ec2-api-tools/php/doQueue.sh >> /home/user/output.txt

脚本 doQueue.sh(手动运行即可):

#/bin/sh
. ./environment.sh
php process_queue.php

environment.sh(同样手动操作):

#!/bin/sh
echo "running environment"
PATH=$EC2_HOME/bin:$PATH
EC2_HOME=/home/user/public_html/domain.com/private/ec2-api-tools
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/user/public_html/domain.com/private/ec2-api-tools/bin
MAIL=/var/mail/root
PWD=/home/user/public_html/domain.com/private/ec2-api-tools
JAVA_HOME=/usr/lib/jvm/java-6-sun/jre/
LANG=en_US.UTF-8
EC2_PRIVATE_KEY=/home/user/public_html/domain.com/private/ec2-api-tools/pk-hash.pem
EC2_CERT=/home/user/public_html/domain.com/private/ec2-api-tools/cert-hash.pem

我尝试过使用和的变体sh,但.无济于事。解决此问题的最佳方法是什么?

答案1

这是在/var/spool/cron/crontabs/还是/etc/cron.d/(后者要求用户以...身份运行该作业)?

您是否尝试过在 doQueue.sh 中放入调试语句来获取一些输出来验证它是否正在运行?

答案2

确保 crontab 文件以换行符结尾

答案3

#/bin/sh
. ./environment.sh

脚本运行时的 CWD 是什么?尝试指定 environment.sh 的绝对路径

这可以解释为什么 cron 作业实际上不起作用,但不能解释为什么它根本不启动。

默认情况下,cron 会向本地用户发送作业输出和错误消息 - 您检查过吗?

您确定该作业存在于 cron 文件中吗?(即,在提示符下输入“crontab -l”时您会看到什么)。

高血压

C。

相关内容