我正在使用 Yii 并且必须为 cron 实现一个脚本。 我有一个脚本文件,它只调用 Yii 并启动我的 php 脚本文件。
到此为止一切都很好。如果我正在更新 php 脚本,Cron 只会继续执行旧脚本。
重新启动 cron-service、重新启动服务器等都没有帮助。 我也卸载了 cron 并重新安装,但没有任何改变。他仍然执行这个 php 脚本的旧版本。
任何人都知道出了什么问题或我可以做些什么来解决这个问题?我正在使用 Ubuntu 12.04。
编辑:
cronjob
脚本正在运行:
#!/bin/bash
cd ../www/protected/ ./yiic Cron ProcessPayments
PHP脚本
class CronCommand extends CConsoleCommand {
public function actionProcessPayments() {
...
}}
这有效,但 Cron 会忽略我对此脚本所做的任何更改。 现在我要说的是:他两个都执行了。我的旧版本和新版本。我从未对某事如此困惑。
最佳答案
假设您在它所在的机器上有 sudo...
首先检查它是否位于通常的 cron 目录/etc/cron.*
sudo find /etc/cron* -mount -iname yiic
如果那里什么都没有出现,那么搜索整个文件系统,否则你将不得不开始手动搜索很多其他地方,这比运行查找花费更多时间
sudo find / -mount -iname yiic
在两个查找命令中,如果文件名是或曾经是 yiic 以外的任何内容,则执行 yiic* 以便它搜索以 yiic 开头的任何内容
一旦找到副本,如果还有其他副本,请删除除最新副本以外的所有副本,甚至删除那个副本,然后通过版本控制在机器上重新安装脚本。
编辑:
可能比你真正关心的要多,但是 find 命令分解如下:
sudo
- 提升权限,因此您可以到处搜索,而不是用户可以阅读的地方
find
- 查找事物的命令
/
- 搜索的起点,可以在任何地方
-mount
- 这告诉 find 不要搜索其他文件系统
-iname
- 要搜索的不区分大小写的名称
yiic
- 搜索词
关于php - Cron Job 使用旧的不存在的 php 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18060929/