web-dev-qa-db-ja.com

時間を変更しても午前12.00に実行されるCronジョブ

WHMCSのcPanelで設定されているcronは1日1回、午前12.00に1つだけです。

Cronは毎日のアクティビティログをメールに送信します。

最近問題が発生し、cronジョブアクティビティログがそのメールから送られてきました[email protected]は存在しません。実際のドメイン名を置き換えることなく、そのアドレスからメールが送信されます。

そこで、cronジョブを削除し、午前8時の異なるタイミングで新しいジョブを作成しました。 cronはその時点で正しく実行されており、有効なメールからログを受信して​​います。ただし、その時点で別のcronジョブがスタックしており、ログがその無効なメールアドレス[email protected]から来ている場合、私はまだ午前12.00でもメールを受け取ります。

Cron構成ファイルを調べましたが、cronの重複エントリはありませんでした。 WHMCSサポートで確認しましたが、ソフトウェア構成は正しいです。

以前にこのような問題が発生したことがありますか?何か提案はありますか?ありがとうございました。

2
Mina Hafzalla

また、すべてのユーザーのcronジョブを確認するときは、cronファイルの各行の最初の数文字を確認してください。

文字の最初のセットが「0 0」または「00 00」のいずれか、または任意の形式の2つのゼロセットで始まる場合、それは真夜中を意味します。後の数字は、タスクが発生するはずの深夜の数を定義するのに役立ちます。したがって、残りの文字がスペースで区切られた星の後にコマンドが続く場合、そのコマンドは深夜(午前12時)ごとに実行されます。

また、cpanelは設定を(cpanelに)保存した後にcrontabを上書きする可能性が高いため、cpanelを使用する前後(特にcpanelを使用した後)にcrontabを確認してください。 rootとしてのUNIXシェルでは、次のコマンドでユーザーを切り替えることができます。

su <insert username>

次に、そのユーザーのcrontabを次のように確認して編集します。

crontab -e

また、次のように入力して、cronで始まる他のcronファイルのetcフォルダー全体を確認します。

ls /etc/cron*.*
1
Mike

Cronジョブは複数の場所にインストールできます。必ずすべてチェックしてください。サーバーには、cronジョブをインストールできる/etc/cron.d/および/etc/cron.dailyディレクトリがあります。各ユーザーは、crontabコマンドを使用してジョブをインストールすることもできます。 (crontab -lは特定のユーザーのすべてのジョブをリストします)。すべてのユーザーのcronジョブのリストについて このStackOverflowの質問 の解決策を試してみてください。

Cronジョブが実行されると、次のようなログエントリが/etc/log/syslogに投稿されます。

Jan 18 07:42:01 mybox CRON[26066]: (root) CMD (/root/cronjobs/check)

これにより、ジョブがいつ実行され、どのユーザーで実行されたかがわかります。

次のようなコマンドを使用して、cronデーモンの再起動を試みることもできます。

Sudo service cron restart
0