web-dev-qa-db-ja.com

Ubuntuの/ etc / crontabを解読する

/etc/crontab私のマシンでは次のとおりです。

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

関連する質問が2つあります。

  • なぜ17、25、47、52なのですか?さまざまなジョブをずらした方がいいかもしれませんが、もっと均等にずらしてみませんか?たとえば、0、15、30、45などです。
  • Anacronがdaily/weekly/monthlyコマンドに使用され、hourlyコマンドには使用されないのはなぜですか?毎時のコマンドを見逃しても大丈夫ですか? (私が正しく理解している場合、anacronは、「毎週土曜日」コマンドがあり、コンピューターが土曜日にダウンしている場合に、代わりにコマンドを日曜日に実行します)。
1
k_g

最初の質問の答えはわかりません。これが2番目です

Cronは、継続的に稼働しているマシン用に設計されています。ジョブが期限切れになったときにマシンの電源がオフになっていると、実行されません。この状況をよりよく処理するために、Anacronと呼ばれる新しいツールが作成されました。 anacronの使命は、これらの毎日、毎週、および毎月のアクティビティが実際に発生することを保証することです。ただし、日中のある時点でコンピューターの電源がオンになった場合に限ります。時間、分、秒は記録されず、日、月、週のみが記録されます。

それはconfファイルです->/etc/anacrontab

Anacronは、スクリプト/etc/init.d/anacronを介してブート時に実行されます。

Anacronは、システムがサーバーのように24時間365日稼働することを想定していません。

24時間365日稼働していないマシンでバックグラウンドジョブを自動的に実行する場合は、anacronを使用する必要があります。

バックアップスクリプトが毎日11時にスケジュールされている場合PM通常のcronジョブとして、ラップトップが午後11時に稼働していない場合、バックアップジョブは実行されません。

ただし、anacronで同じジョブがスケジュールされている場合は、ラップトップが復帰すると、そのジョブが確実に実行されます。

デスクトップやラップトップに最適です。

enter image description here

3
luv.preet