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

2022-08-30 23:48:55

我正在与Yii合作,必须为cron实现一个脚本。我有一个脚本文件,它只调用Yii并启动我的php脚本文件。

在此之前,一切都很好。如果我正在更新php脚本,Cron只是继续执行旧的脚本。

重新启动cron服务,重新启动服务器等没有帮助。我也卸载了cron并再次安装它,但没有任何变化。他仍然执行这个php脚本的旧版本。

任何人都知道出了什么问题,或者我能做些什么来解决这个问题?我使用的是 Ubuntu 12.04。

编辑:

脚本正在运行:cronjob

#!/bin/bash
cd ../www/protected/ ./yiic Cron ProcessPayments

php 脚本

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

这有效,但我对此脚本所做的任何更改都被Cron忽略。现在我谈到了这一点:他同时执行了这两件事。我的旧版本和新版本。我从来没有被什么东西弄得这么困惑。


答案 1

假设您在它所在的机器上有sudo...

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

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

如果那里没有显示任何内容,那么搜索整个文件系统,因为否则您将开始手动搜索许多其他位置,并且比运行查找需要更多的时间

sudo find / -mount -iname yiic 

在这两个命令中,如果文件名是或曾经是 yiic do yiic* 以外的任何内容,则查找命令,以便它搜索以 yiic 开头的任何内容

找到副本后,如果还有其他副本,请删除除最新副本以外的所有副本,甚至是该副本,然后从版本控制中重新安装计算机上的脚本。


编辑:

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

sudo- 更高的特权,所以你可以搜索任何地方,而不是你的用户可以阅读的地方

find- 命令寻找盗贼

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

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

-iname- 要搜索的不区分大小写的名称

yiic- 搜索词


答案 2

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

呵呵


推荐