Ubuntu crontab php 不工作

Ubuntu crontab php 不工作

是的,我已经阅读了很多很多文档,但我无法让它工作。我有一个简单的单个 php 文件,我想在一分钟内运行一次或两次。我的 php 文件名为:cronjob_refresh.php,我使用的是 Ubuntu 12。

打字后

crontab -e

我正在进入终端:

root@cron:~# crontab -e

root 没有 crontab - 使用一个空的

第888章

我不知道“888”是什么意思......我正在写(在888之后)我的cronjob字符串

*/1 * * * * php /var/www/cronjob/cronjob_refresh.php

按回车键后,我得到“?”输入 cronjob 字符串后的符号。

root@cron:~# crontab -e

root 没有 crontab - 使用一个空的

第888章

*/1 * * * * php /var/www/cronjob/cronjob_refresh.php

然后我按 CTRL + Z 退出。毕竟我正在执行

crontab -l

检查 cronjob 是否已添加到我的 cronjob 列表中,但它说该列表为空。

我不知道我做错了什么。另外,我不想在一分钟、30 - 30 秒内执行两次。如何设置cronjob?我想将所有内容记录在同一目录中名为 logs.log 的文件中,这可能吗?

答案1

888是默认的Ubuntu crontab文件中的字符数(22行信息全部注释掉)。

输入 ^Z 不会保存任何内容,它会将作业置于后台 - 请阅读作业控制。

888
*/1 * * * * php /var/www/cronjob/cronjob_refresh.php
?
^Z
[1]+  Stopped                 crontab -e

您应该在运行之前设置编辑器首选项crontab -e

export EDITOR=vi 或者export EDITOR=nano

Cron 仅适用于 1 分钟分辨率,因此您的脚本需要 30 秒才能完成某些操作。

为了防止有关您的 php 无法工作的其他问题(因为您的 crontab 规范中存在错误),请阅读我们的规范问答就此主题而言。

答案2

首先,你不能安排每秒一个的 cronjob。因为在 cron 中你可以指定的最小单位是分钟。您想要的可能是运行类似以下的脚本:

注意:删除位置后的 2 个反引号之一。编辑不让我删除它们...

#!/usr/bin/perl -w

而(1){

`php /path/to/script/cronjjob_refresh.php``;

睡觉(30);

}

但您必须重新考虑这一点,如果您需要在系统上每 30 秒运行一个脚本,那么您可能做错了什么。

相关内容