继续从一个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。