17

私はYiiを使用しており、cron 用のスクリプトを実装する必要があります。Yii を呼び出して php-script ファイルを起動するだけのスクリプト ファイルがあります。

この時点まではすべて問題ありません。私がphpスクリプトを更新している場合、Cronは古いものを実行し続けます。

cron-service の再起動、サーバーの再起動などは役に立ちませんでした。cronもアンインストールして再度インストールしましたが、何も変わりませんでした。彼はまだこの php-script の古いバージョンを実行しています。

何が間違っているのか、これを解決するために何ができるのか誰にも分かりませんか? Ubuntu 12.04 を使用しています。

編集:

cronjobスクリプトが実行されています:

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

PHPスクリプト

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

これは機能しますが、このスクリプトに加えた変更は Cron によって無視されます。そして今、私はこの点にいます:彼は両方を実行します. 私の古いバージョンと新しいバージョン。私は何かにこれほど混乱したことはありません。

4

3 に答える 3

1

それが置かれているマシンにsudoがあると仮定します...

最初に、通常の cron ディレクトリ /etc/cron.* にあるかどうかを確認します。

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

そこに何も表示されない場合は、ファイルシステム全体を検索します。そうしないと、他の多くの場所を手動で検索する必要が生じ、検索を実行するよりも時間がかかります

sudo find / -mount -iname yiic 

両方の find コマンドで、ファイル名が yiic 以外である場合、または以前に yiic* であった場合、yiic で始まるものを検索するようにします。

コピーを見つけたら、他にある場合は、最新のものを除くすべてのコピーを削除するか、そのコピーを削除してから、バージョン管理からマシンにスクリプトを再インストールします。


編集:

おそらくあなたが本当に気にかけている以上のことですが、find コマンドは次のように分類されます。

sudo- 昇格された権限により、ユーザーが読むことができる場所ではなく、どこでも検索できます

find- これを探すコマンド

/- 検索の開始点、どこでもかまいません

-mount- これは find に他のファイルシステムを検索しないように指示します

-iname- 検索する大文字と小文字を区別しない名前

yiic- 検索語

于 2015-12-22T17:43:45.297 に答える
0

コマンドを使用してスクリプトのすべてのコピーを見つけ、find不要なコピーを削除します。cron実行するスクリプトのコピーを選択したら、再起動します。私の推測では、スクリプトのコピーがディレクトリ (たとえばconfig.daily、または同様のもの) にぶら下がっている可能性があります。

HTH

于 2015-12-17T19:03:33.560 に答える