2013-08-05 41 views
10

我正在使用Yii並且必須爲cron實現腳本。 我有一個腳本文件,它只是調用Yii並啓動我的php腳本文件。Cron Job使用舊的不存在的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() { 
... 
}} 

這工作,但這個劇本我做任何改變被忽略克龍。 現在我在這一點上:他執行兩個。我的舊版本和新版本。我從來沒有被這件事困惑過。

+0

你可以發佈你如何定義命令來運行? – Mantas

+0

您是否嘗試運行「$ crontab -l」呢? –

+0

crontab -l只是打印可以用crontab -e編輯的配置。我已經添加了cron腳本和php腳本的摘錄。 – user1151040

回答

0

使用find命令找到您的腳本的所有副本,並刪除不需要的副本。在您選擇要執行的腳本的副本後重新啓動cron。我的猜測是腳本的副本可能在目錄中(例如config.daily或類似的東西)。

HTH

0

假設你有它位於機器上須藤...

首先檢查看看它是否位於通常的cron目錄/etc/cron.*

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

如果在那裏沒有任何東西顯示,那麼搜索整個文件系統,否則您將開始不得不手動搜索許多其他位置,並且比運行查找花費的時間更多

sudo find/-mount -iname yiic 

在這兩種查找命令,如果文件名是或者一直以外的任何其他的yiic做的yiic *,使其搜尋SEARCH_TERM_EXAMPLES任何具有的yiic

開始一旦你找到了副本,如果有任何人,刪除除最新版本之外的每一個,甚至是那一個,然後從版本控制中重新安裝該機器上的腳本。


編輯:

可能超過您很在意,但find命令打破了這樣的:

sudo - 提升權限的,所以你可以到處搜索,而不是到你'用戶可以閱讀

find - 查找th的命令

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

-mount - 這告訴找到不搜索其他文件系統

-iname - 不區分大小寫的名稱搜索

yiic - 搜索詞

0

我有類似的問題。修改/etc/cron.d中的腳本仍舊以舊的方式執行。我通過發送一個SIGHUP到cron來解決問題:

sudo pkill -SIGHUP /usr/sbin/cron