我每五分钟运行一次cron作业,调用php脚本来检查用户是否已导入任何文件进行处理。
当我通过访问我的网络浏览器中的地址来运行php脚本时,它会运行脚本,然后通过电子邮件向用户发送通知。当我使用cron作业运行脚本时,脚本工作正常,但它不会向用户发送电子邮件。关于为什么没有发送电子邮件的任何想法?
我正在运行Ubuntu Hardy LTS。 cron的工作是:
*/5 * * * * /usr/bin/wget -–delete-after http://www.mywebsite.com/import_processing.php >/dev/null 2>&1
我正在使用delete-after,因此我无法获取堆叠在我的服务器目录中的脚本副本。我也在抑制输出和错误,因为我自己不需要电子邮件确认。
该脚本使用基本邮件功能,正如我所说,从我的浏览器运行时效果很好。
更新:看起来问题是我的php脚本正在寻找一个浏览器cookie来发送电子邮件。我想我必须找到另一种获取用户身份的方法。
答案 0 :(得分:2)
像这样运行
*/5 * * * * /usr/bin/php /var/www/htdocs/blah/blah/import_processing.php >/dev/null 2>&1
当你使用wget时,你正在下载文件, 用php运行文件, 测试你的脚本运行
/usr/bin/php /var/www/htdocs/blah/blah/import_processing.php >/dev/null 2>&1
使用本地路径,以防万一
$ which php
找出它的安装位置
答案 1 :(得分:0)
脚本使用wget或php正常运行;问题是php脚本寻找的浏览器cookie在页面在Web浏览器之外运行时不存在。
我改变了php脚本来进行数据库查找,它运行得很好。谢谢你的建议。