排除不启动的cron的最佳方法是什么?

继续从一个Stackoverflow的问题 ,我有一个.sh,试图(1)运行一个脚本,设置环境variables,然后(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. 无济于事。 解决此问题的最佳方法是什么?

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

你有没有尝试把debugging语句在doQueue.sh得到一些输出来validation它正在运行?

确保crontab文件以换行符结束

 #/bin/sh . ./environment.sh 

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

这可以解释为什么cron工作实际上不起作用,但不是为什么它从来不会发生。

默认情况下,cron通过作业和错误消息的输出邮件给本地用户 – 你有检查过吗?

你确定这个工作存在于cron文件吗? (即你在提示符下input“crontab -l”时看到了什么)。

HTH

C。