php - Cron Job 使用旧的不存在的 php 文件

标签 php ubuntu yii cron

我正在使用 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/

相关文章:

PHP永不重复的随机数

linux - 为什么我已经设置了它,但仍然说没有 GOPATH?

php - 使用 PostgreSQL 在 Yii Framework 中设置非默认架构

mysql - 带有限制和分页的 yii CActiveDataProvider

php - 使用 css/js/php 生成和划分网格

php - Laravel 5.4 路由相同的前缀组但不同的中间件给出错误

linux - 编译时 Ubuntu 14.04 中的 Oracle Developer Studio : Cannot find sys/cdefs. h

php - 使用 php 从 Google 文档中读取内容

php - 删除 Laravel 集合对象中的最后两行

ubuntu - InfluxDB 恢复错误 : updating metadata on influxd service failed