私はcron / anacronがLinuxでどのように機能するかをよく理解しています。私の質問はこれです:
/etc/cron.daily
anacronはログイン時に実行され、実行スクリプトから1日以上経過したことを確認します。- anacronはスクリプトを実行し
/etc/cron.daily
、タイムスタンプを更新します。/var/spool/anacron/cron.daily
- アナクロン終了
- コンピュータが24時間以上オンになっています。
- cronが実行され、cron.dailyの時間一致を検出します。
- cronはその時点から何もしません。
test -x anacrontab" == True
コンピュータが24時間以上実行されている場合、cronはcron.daily(Debianベースのディストリビューション)でスクリプトをどのように実行しますか?
デフォルト/etc/crontab
(1分ごとに実行)は、存在するか(より正確には-xビット)をテストし、/usr/bin/anacron
フォルダが見つかった場合はフォルダを無視します/etc/cron.daily
が、操作を実行するためにanacronを再起動しないようです。
編集する:
したがって、cronはこのフォルダでanacronを実行します/etc/cron.d
が、コンピュータの電源が入っていて毎日午前7時30分にログインしている場合にのみ可能です。いくつかのスプレッドシートタスクを実行した後、スクリプトは/etc/cron.daily
1分から31.5時間の間に実行されると結論付けました。
前任者:
シーン1:
- 2021年5月23日午後11時59分ログイン
- anacronタイムスタンプが
/etc/cron.daily
2021年5月23日より前であると仮定すると、anacronはすべてのスクリプトを実行し、/etc/cron.daily
タイムスタンプを2021年5月23日に更新します。 - ログアウト
- 2021年5月24日午後12時に再度ログインしてください。
- anacronは、最後の実行が2021年5月23日で、現在は2021年5月24日であることを確認しました。したがって、anacronはすべてのスクリプトを実行しました。
/etc/cron.daily
- 実行間の経過時間:1分
シナリオ 2:
- 2021年5月23日12時ログイン
- anacronタイムスタンプが
/etc/cron.daily
2021年5月23日より前であると仮定すると、anacronはすべてのスクリプトを実行し、/etc/cron.daily
タイムスタンプを2021年5月23日に更新します。 - コンピュータは2021年5月23日午前7時30分までオンになっており、ログインしています。
- cron は crontab ファイルで anacron を実行します。
/etc/cron.d
- タイムスタンプが2021年5月23日なので、何も起こりません。
- コンピュータは2021年5月24日午前7時30分までオンになっており、ログインしています。
- cron は crontab ファイルで anacron を実行します。
/etc/cron.d
- anacronは、最後の実行が2021年5月23日で、現在は2021年5月24日であることを確認しました。したがって、anacronはすべてのスクリプトを実行しました。
/etc/cron.daily
- 実行間の経過時間:31.5時間
答え1
すべてのシステム/etc/cron.daily
など/etc/cron.weekly
のファイルには、実行する項目が含まれています。ナクロンこれには実行する項目が含まれます。予約されたこと。/etc/crontab
アイテムを含めるコンポーネントの実行〜するナクロン次のいずれかを実行します。コンポーネントの実行または経由予約されたこと。
考慮すべき別のファイルは、/etc/anacrontab
特定の効果を無視できることです。/etc/crontab
重要なシステム予約されたこと関連ファイルは、/etc/cron.daily/logrotate
ログ循環プロセスを開始するために使用されるスクリプトです。
一般ユーザー予約されたことシステムcronjobとは独立して実行されます。
これは/etc/crontab
毎分実行されません。アクティビティは、さまざまなcrontab仕様に基づいて決定されます。