バックグラウンドで実行されるスケジュールされたタスクに関するかなり一般的な質問は、「それらは実行されていますか?」です。一般に cron ジョブと呼ばれるこれらのタスクは、ウェブサイトとサーバーのメンテナンス、バックアップ、およびその他の機能上のニーズのために自動的に実行する必要があるタスクです。
cron ジョブが実行されているかどうかを判断するには、タスクのスケジューリング (crontab) と実際のタスク自体 (cron ジョブ) を区別する必要があります。出力結果を生成しない cron ジョブでは、サーバー ログに精通している必要があります。サーバー ログの結果を確認したら、実行されていない cron ジョブをトラブルシューティングできます。スクリプトが実行中であることを示す出力を生成するように、スクリプトを変更することもできます。
次の記事は、crontab と cron ジョブを区別するのに役立ちます。cron ジョブがいつ実行されているかを確認できる 2 つの方法と、実行されていない cron ジョブをトラブルシューティングする方法について説明します。
- Crontab と Cron Job の違いを理解する
- Cron ジョブが実行されているかどうかを確認する 2 つの方法
- cron ジョブのトラブルシューティング
注:この機能を実行するには、VPS または専用サーバーで root アクセスが必要です。
Crontab と Cron ジョブの違い
初心者の管理者と、開発者または経験豊富なサーバー管理者との間の混乱を避けるために、「crontab」および「cron ジョブ」という用語の意味を理解することが重要です。
「cron ジョブのスケジューリング」を検索すると、 crontab という用語が見つかります。 ほとんど紹介なしで定義または説明されています。 crontab という用語 「cron テーブル」の略で、cron ジョブをスケジュールするための Linux コマンドです。 crontab は、cron ジョブのスケジュールを含む実際のテキスト ファイルでもあります。
cron ジョブ 特定のスケジュールされた時間にバックグラウンドで実行しようとしている実際のコードまたはスクリプトです。 cron ジョブの Linux コマンドは単純に cron です .
したがって、cron ジョブが crontab でどのようにスケジュールされているかを尋ねられた場合、crontab として知られるテキスト ファイルで cron ジョブに適用されるタイミングと頻度の情報を参照していることがわかります。
cPanel の目的で、crontab と cron ジョブは、Cron ジョブ の cPanel インターフェースで直接編集できます。 ページ。ここでは、Cron ジョブの上部を見ることができます ページ:
既存の cron ジョブがある場合は、[Cron ジョブ] の下部に表示されます。 ページ。 cron ジョブのタイミング (crontab ファイルから) と、cron ジョブのコードが表示されます。このページで、cron ジョブとそれに対応するスケジュールを追加、編集、および削除できます。下部のセクションは次のようになります:
cPanel で提供される crontab 情報を使用すると、cron ジョブがいつ実行される予定だったかを判断できます。場合によっては、cron ジョブが出力を生成しないため、生成されたログ ファイルとそれらの検索方法をよく理解することが重要です。
Cron ジョブが実行されているかどうかを確認する 2 つの方法
ログ ファイルの確認
この例では、架空のファイル名 script.sh を使用して crontab ログを検索します。 .特定のパターンでファイルまたは文字を検索するために一般的に使用されるコマンドは、grep です。 .この端末コマンドを使用して、「script.sh」が実行されている場合にログ ファイルでインスタンスを検索できます。これは、cron ログ ファイルで「script.sh」を検索するために使用されるコマンドです。
grep “script.sh” /var/log/cron
ログ ファイルで別のスクリプトまたは用語を検索する場合は、「script.sh」を、ログで見つけようとしているスクリプト ファイルまたはテキスト文字列の名前に置き換えるだけです。
grep コマンドを使用すると、ログを表示して、cron ジョブ内の特定のスクリプトが最後に実行された時刻を確認できます。 cron ジョブが目に見える出力を生成しない場合は、cron ジョブが実際に実行されたかどうかを確認する必要があります。
たとえば、キャッシュ クリア cron ジョブが最後に実行された時刻を確認できます。次に、キャッシュが空かどうかを確認して、キャッシュがクリアされているかどうかを確認します。ログをチェックして cronjob が実行されていることを確認する例を次に示します。
ログには、ファイルが実行されたときの記録が表示されます。 cPanel から端末にアクセスする方法についての情報が必要な場合は、チュートリアルを参照してください。
スクリプトで出力を使用して実行中の cron ジョブを表示する
cron ジョブ (crontab 設定を含む) が機能しているかどうかを確認する最も簡単な方法は、既存の cron ジョブを編集して、目に見える出力が生成されるようにすることです。既存のスクリプトにコード行を追加して、スクリプトの実行時に結果を出力できます。このコマンドの結果として出力が生成された場合は、この出力を使用して、cron スクリプトが実行されていることを確認できます。
実行中のコードまたはスクリプトに精通していないユーザーは、cron ジョブ スクリプトの変更を実行しないでください。 cron ジョブはさまざまな方法で記述できるため、経験豊富な開発者に相談して、Web サイトの問題を防ぐ必要がある場合があります。
Cron ジョブのトラブルシューティング
crontab ログにアクティビティが表示されない場合、または cron アクティビティに関する電子メールを受信していない場合 (出力のある cron ジョブの場合)、最初に cron ジョブの時間パラメータが正しいことを再確認してください。これは、考えられる問題を適切にトラブルシューティングできるように、cron が実行されているかどうか (およびいつ実行されるか) を判断するのに役立ちます。
それでも cron ジョブの問題が疑われる場合は、通常、実行されていない理由として 3 つの可能性があります:
<オール>3 つのケースすべてで、cron ジョブはサイレントに失敗します。つまり、実行中の cron ジョブの視覚的な結果はありません。
最初の可能性として、cron ジョブの実行試行中に記録される可能性のあるエラーを検索するために、Web サーバーのシステム ログを確認する必要があります。その後、エラー メッセージを使用して、cron ジョブ スクリプトが失敗している可能性がある場所を特定し、必要な修正を行うことができます。
また、cron ジョブの完了後に電子メールを送信しようとしたかどうかを再確認するために、メール サーバー ログを調べる必要がある場合もあります。指定された電子メール アドレスは、cPanel の cron ジョブ ページの上部に設定されていることに注意してください。メール アドレスを使用して、メール サーバー ログでメール試行を分離できます。
実行中の cron ジョブの記録が表示されているが、予想される電子メールがない場合は、メール サーバー ログも確認します。出力とともに cron ジョブが正常に完了すると、電子メールが送信されます。
3 番目の可能性では、cron ジョブにコードを追加して、簡単に追跡できる出力を生成し、実行中であることを確認する必要があります。
メール サーバーのログを確認する方法がわからない場合は、ホスティング サービスのテクニカル サポートに問い合わせるか、経験豊富な管理者と協力してログを使用し、メール サーバーに関連する問題を特定してください。
cron ジョブが失敗する原因はさまざまです。 cron ジョブのコーディング方法がわからない場合は、経験豊富な開発者に相談して、トラブルシューティングのためにコードを修正または変更してください。
そのトピックに関する詳細情報が必要な場合は、cPanel での cron ジョブの設定に関する完全なガイドを読むことができます。
ビジネス、代理店、または再販業者のクライアントが、最適化されたマネージド VPS ホスティングで常に接続され、電源が入っていることを確認してください。