![解决无法启动的 cron 问题的最佳方法是什么?](https://linux22.com/image/519199/%E8%A7%A3%E5%86%B3%E6%97%A0%E6%B3%95%E5%90%AF%E5%8A%A8%E7%9A%84%20cron%20%E9%97%AE%E9%A2%98%E7%9A%84%E6%9C%80%E4%BD%B3%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
继续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。