继续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。