是的,我已经阅读了很多很多文档,但我无法让它工作。我有一个简单的单个 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 秒运行一个脚本,那么您可能做错了什么。