維持および更新する必要がある広大な crontab を継承しました。私はそれや bash スクリプトの経験があまりなく (基本についてはかなり理解できていると思います)、良い仕事をしたいと思っています。簡単なリクエスト: 乱雑な crontab と一連の bash スクリプトを「リファクタリング」するためのガイドライン
長いリクエスト: 私は多くの問題に遭遇しましたが、多くの人が cron ファイルなどを使用しているため、情報、ベスト プラクティス、およびツールの大きなリポジトリが欠けているように感じます。プログラミングの一種?(私の偏見: ツールを使用して、より速く、一貫して、適切に処理できるのに、手動で何かを行う必要はありません)。
これまでの問題の例:
外部イベントが原因で、crontab が数日間実行されませんでした。他の誰かと一緒に、私たちは手作業でリストを調べ、何が実行されなかったのか、何を再実行する必要があるのか、どのスクリプトを編集して以前の日付で実行する必要があるのかなどを調べようとしました。見つけられないもの:
- オンラインにはたくさんの (少し無意味な) 'cron ジェネレーター' があります。逆はどこ?長いcrontab、2つの日付を入力して、どのプロセスがいつ実行されるべきか、または合計で何回実行されるべきかを出力できるものはありますか? これは私の貧弱なスクリプト能力の範囲内にあるように思われるので、既に存在しているべきではないでしょうか? ;)
- または、もう一度それを行う必要がある場合、スクリプト内のすべての日付呼び出しを変更するのではなく、date() のインスタンスが以前の時刻に事前設定されるように bashscript を呼び出す方法はありますか? (例: 見逃したすべてのレポートと請求書)
あるレポートが 2 年間実行されていなかったことが判明しました。もう一度リクエストされたばかりで、ほら、crontabにありました!bash スクリプトには、関連ファイルへのパス参照が壊れていました。見つからないもの: bash ファイルのパス チェッカーのようなものはありますか? ウェブサイトのリンク チェッカーのようなものです。はい、最終的にはこれらすべてを手動で実行しますが、少なくともいくつかの問題領域が表示されます。
依存プロセス間のギャップが長すぎるか短すぎるため、最初のプロセスが実行された後に更新が行われたか、2 番目のプロセスが呼び出される前に最初のプロセスの実行が完了していない場合があるようです。これにはいくつかの可能なオプションを見てきました (たとえば、anacron は順番に実行されます)。
また、crontab から生成された本質的に意味のない電子メールも多数あります (エラーをスローするが「正しく」実行されるスクリプト、ほとんどサイレントに失敗するスクリプト、または重要でないスクリプトのすべてのステップを印刷するだけのスクリプト)。私は手動でスクリプトを調べて、より有用なデータを提供するようにするか、「静かに成功する」ようにしますが、ガイドラインはありますか?
問題の理解やレイアウトが混乱している場合は、申し訳ありませんが、問題がわかりました。私は初心者から、これを正しく行うために何をすべきかを知る必要があり、扱いにくいシステムをさらに台無しにする必要はありません。ありがとう!