1

私の問題では、数 n が与えられます。スクリプトを n 日に 1 回実行するには、cron 構成を作成する必要があります。

たとえば、n=20 の場合、スクリプトは 20 日に 1 回実行する必要があります。

何かアドバイス?

4

1 に答える 1

2

その構成は、不可能ではないにしても、非常に醜いものになります(実行される毎日を列挙する必要がある可能性があります..)

構成を作成する方がはるかに簡単なので、毎日実行されます。次に、スクリプト内 (またはラッパー スクリプト内) で、実際に実行する必要があることを確認します。

このチェックは

  • 算術、次のようなもの:daycounter=$(( ($(date +%s) / (60*60*24) ) % 20))
  • 最後の実行時間を保存する作成日を持つ状態ファイル

ファイルベースのソリューションは、よりフォールト トレラントです。スケジュールの日にサーバーがダウンした場合は、翌日に実行されますが、計算は次のサイクル (20 日後) にスケジュールされます。

機能をファイルにラップすると、cron エントリは非常に見栄えがよくなります。

10 1 * * * executeeveryxday nameofthestatefile 20 "command to execute"

もちろん、より多くのサーバーとエントリがあり、これを中央の場所から管理したい場合は、おそらくデータベースからタスクを取得する方がよいでしょう..

于 2012-09-07T08:58:46.443 に答える