数年後に実行されるタスクをスケジュールする最適な方法は何ですか? たとえば、4 年後にスクリプトを実行するなどです。
cron はそのために最適な方法でしょうか?
答え1
以下を使用できますat
:
$ at 10am Jul 31 2030
warning: commands will be executed using /bin/sh
at> echo Hello
at> <EOT>
job 2 at Wed Jul 31 10:00:00 2030
$ atq
1 Sun Jul 31 10:00:00 2030 a user
$ atrm 1
答え2
4 年経ってもスクリプトが修正なしで有効なままであるほど十分に変更されずに稼働しているコンピュータ システムは、ある程度静的です。1 つのボックスがずっと後になっても同じ役割を果たし続けると想定するスケジュール システムは、かなり楽観的です。ハード ディスクの障害やその他の問題が発生すると、バックアップが「一時的な」ジョブの保存を処理するかどうかが判明する可能性があります。
代わりに、「メンテナンス タスク X が実行され、データの有効期間が今から N か月以上延長されているかどうかをテストするにはどうすればよいか」を検討する方が確実でしょう。たとえば、ドメインがすべて更新されているか、SSL 証明書が期限切れになっていないかなどです。その後、ジョブを毎日、毎週、毎月、または「毎年」よりも高い頻度で実行できます。これは、コードが実行され、確実に実行されることを意味します。特に、ツールがどこかで成功を記録する場合はそうです。
すべてがうまくいかない場合は、電子メールを送信するリマインダーを多数備えた部門共有カレンダーが役立つかもしれません。カレンダーが置き換えられたり、クラウドに移行されたり、その他の何らかの方法で移行されたりした場合、VIP が何も再入力しなくても済むように、誰かがすべてのイベントを移行する努力をすることはほぼ確実です。そのため、リマインダーは「無料で」移行され、4 年に 1 度しか行われないこのタスクを誰も覚えておく必要はありません。