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

时间:2013-08-05 14:39:04

标签: 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-script

class CronCommand extends CConsoleCommand {
public function actionProcessPayments() {
...
}}

这样可行,但我对此脚本所做的任何更改都会被Cron忽略。 而现在我正是在这一点上:他执行两者。我的旧版本和新版本。我从来没有被某些东西弄糊涂。

3 个答案:

答案 0 :(得分:0)

使用find命令找到脚本的所有副本,并删除不需要的副本。选择要执行的脚本副本后,重新启动cron。我的猜测是脚本的副本可能会挂在目录中(例如config.daily或类似的东西)。

HTH

答案 1 :(得分:0)

假设你在机器上有sudo,它位于......

首先检查它是否位于通常的cron目录/ etc / cron中。*

sudo find /etc/cron* -mount -iname yiic

如果没有显示,那么搜索整个文件系统,否则您将开始手动搜索许多其他地方,而且比运行查找需要更多时间

sudo find / -mount -iname yiic 

在两个find命令中,如果文件名是或者除了yiic之外的任何东西都是yiic *,以便它搜索以yiic开头的任何内容

找到副本后,如果还有其他副本,请删除除最新副本之外的每个副本,或者删除最新的副本,然后从版本控制中重新安装该机器上的脚本。

修改

可能比你真正关心的更多,但是find命令会像这样崩溃:

sudo - 提升权限,以便您可以搜索到处,而不是用户可以阅读的地方

find - 寻找thigs的命令

/ - 搜索的起点,可以是任何地方

-mount - 这告诉我不要搜索其他文件系统

-iname - 搜索

的不区分大小写的名称

yiic - 搜索字词

答案 2 :(得分:0)

我有类似的问题。 /etc/cron.d中的脚本在修改后仍以旧方式执行。我通过向Cron发送一个SIGHUP解决了这个问题:

sudo pkill -SIGHUP /usr/sbin/cron