一定期間遅延したアナクロン操作をキャンセルする方法は?

一定期間遅延したアナクロン操作をキャンセルする方法は?

背景:毎日ノートブックの一部のファイルをバックアップしたいのですが、時にはノートブックが数日連続で終了することがあります。

バックアップをジョブとしてスケジュールcronし、それを使用して欠落しているジョブを実行してみましたが、どのように機能するのかanacronわかりません。anacron

たとえば、ノートブックが終了してから3日後にノートブックを起動すると、anacron3つの欠落バックアップジョブがすべて実行されますか?これが真であれば、anacron一定時間(この場合は1日以上)遅延ジョブの実行を停止する最良の方法は何ですか?

答え1

毎日バックアップを実行するジョブがあり、anacronシステムが3日間ダウンした場合は、anacronこのジョブが実行されます。一度4日目にシステムがオンラインになったとき。

詳細には、anacron指定された頻度(日単位)で定期的に繰り返されるコマンドを指定できます。呼び出されるとanacron(起動時または事前定義された時間中に発生する可能性があります)、設定ファイルからタスクリストを読みます/etc/anacrontab。各ジョブについて、anacron過去 n 日以内にジョブが実行されたことを確認します。日常業務の場合、今日が最後の日になります。この間にジョブが実行されなかった場合、anacron はジョブを実行します。

ジョブの実行が完了すると、anacron以下のファイルに実行日が記録されます/var/spool/anacron。このファイルは、次の日にanacronが呼び出されたときの作業状態を確認するために使用されます。

anacron最後の実行から経過した日数と設定された実行頻度のみが照会されるため、そのタスクが複数回実行されるという問題はありません。

/etc/anacrontab毎日のanacron操作は、次の構文を使用して設定ファイルで設定できます。

1 15 backup-job /path/to/backup/script.sh

1は指定されたコマンドを実行する頻度(日)、15はジョブ実行に追加される遅延時間(分)、「backup-job」は識別子、「/path/to/backup/script.sh」は実行時間です。コマンドを実行します。あなたは見ることができますman 8 anacronそしてman 5 anacrontab詳細については。

答え2

これを行う最善の方法は、バックアップの開始時にロックファイルを作成し、スクリプトの最後から削除することです。もちろん、ロックファイルを作成する前にそのファイルが存在することを確認し、存在する場合はスクリプトを停止する必要があります。外部でスクリプトが終了し、ロックファイルがまだ存在することを慎重に確認してください。

関連情報