cronが誤って記述されたスケジュールで失敗するのを見た最も頻繁な理由。またはの15 23 * * *
代わりに、 午後11時15分にスケジュールされたジョブを指定することは練習が必要です。真夜中の後にジョブの曜日もMFが混乱し、真夜中の後ではありません。特定の日付は、3月3日ではなくほとんど使用されないため、通常は問題になります。不明な場合は、https: //crontab.guru/でオンラインでcronスケジュールを確認してください。* * 11 15 *
11 15 * * *
2-6
1-5
* * 3 1 *
2/3
時間指定など、サポートされていないオプションを使用して異なるプラットフォームで作業すると、エラーが発生する可能性があります。これは非常に便利なオプションですが、広く利用できるわけではありません。1-5
またはのようなリストに関する問題にも出くわしました1,3,5
。
修飾されていないパスの使用も問題を引き起こしました。通常/bin:/usr/bin
、デフォルトのパスが使用されるため、標準コマンドのみが実行されます。これらのディレクトリには通常、目的のコマンドがありません。これは、非標準コマンドを使用するスクリプトにも影響します。他の環境変数も欠落している可能性があります。
既存のcrontabを完全に上書きすると、問題が発生しました。ファイルコピーから読み込みます。これは、crontab -l
破壊された場合に既存のcrontabから回復できます。crontabのコピーを〜/ binに保存します。全体にわたってコメントされ、行で終了し# EOF
ます。これは、次のようなcrontabエントリから毎日再読み込みされます。
#!/ usr / bin / crontab
#このcrontabをリロードする
#
54 12 * * * $ {HOME} / bin / crontab
上記のreloadコマンドは、crontabを実行するbangパスを持つ実行可能なcrontabに依存しています。一部のシステムでは、コマンドでcrontabを実行し、ファイルを指定する必要があります。ディレクトリがネットワーク共有さcrontab.$(hostname)
れている場合、ファイルの名前としてよく使用します。これにより、間違ったcrontabが間違ったサーバーにロードされるケースが最終的に修正されます。
ファイルを使用すると、crontabの内容のバックアップが提供され、一時的な編集(使用する場合のみcrontab -e
)を自動的にバックアウトできます。スケジューリングパラメータを正しく取得するのに役立つヘッダーが利用できます。未経験のユーザーがcrontabを編集するときに追加しました。
まれに、ユーザー入力を必要とするコマンドに遭遇しました。これらはcrontabで失敗しますが、一部は入力リダイレクトで機能します。
crontab -e
cronを有効にするには、閉じる必要があります。たとえば、vimを使用してファイルを編集し、:w
書き込みに使用しますが、ジョブは終了するまでcronに追加されません。ですから、私:q
も仕事が終わるまで見ません。