我对 Linux 相当缺乏经验,所以请详细描述一下你的答案。
我的环境:本地 Linux 服务器 12.04,托管 Sugar CRM 6.5.2。
sugar CRM 中有一个区域称为调度程序。我可以在这里配置一些预定义的作业。就我而言,我尝试运行电子邮件提醒(每分钟/每小时/每天/每月)。为了使此调度程序有效,我阅读了一些需要设置 CRON 作业的地方。因此,我做了一些研究,并最终按照 sugarCRM 中给出的说明,在 CRONTAB 中为 root 用户输入了以下几行。
* * * * * cd /var/www/crm; php -f cron.php > /dev/null 2>&1
好吧,我正在我的 sugarCRM(AOS 模块)中创建合同,我希望向相关人员发送有关这些合同的电子邮件提醒。现在我的 sugarCRM 电子邮件已正确配置,我可以使用它发送测试电子邮件。但 CRON + 调度程序没有给出任何结果。我无法收到任何电子邮件。
然后我尝试读取 /var/log/syslog 并且它每分钟显示以下行的条目。
10月27日 15:03:01 unicomm CRON[28182]: (root) CMD (cd /var/www/crm; php -f cron.php > /dev/null 2>&1)
我有几个问题:
- 我在 crontab 中添加的 CRON 作业行是什么意思?
cd /var/www/crm; php -f cron.php > /dev/null 2>&1
对我来说没有任何意义。 - 我该如何让这个东西工作?我搜索了很多地方(包括 SugarCRM 论坛),但没有找到。
答案1
crontab 中的行仅执行命令cd /var/www/crm; php -f cron.php > /dev/null 2>&1
。此命令实际上的作用是,它将当前工作目录更改为,/var/www/crm
并尝试cron.php
使用 php 解释器在那里执行文件。输出和错误被重定向到/dev/null
,即被丢弃。
如果您想要发送电子邮件,您必须检查 cron.php 是否确实具有发送电子邮件的代码以及该代码是否正在执行。
答案2
我刚刚来到这里,因为我遇到了同样的问题。这是一个误解:您不必执行 * * * * * cd /var/www/html/SuiteCRM-7.6.4; php -f cron.php > /dev/null 2>&1 您必须将此行添加到 crontab 文件中
执行:sudo crontab -e
选择您喜欢的编辑器,并在末尾添加此行(5 星 * 为必填项)
节省