130秒または2分10秒ごとに実行されるCRONジョブを作成できますか?
答え1
cronが提供する最も細かい単位は1分です。 1分ごとにジョブを実行し、次の1分前に実行する必要があるかどうかを判断し、正確な時間を待ってから続行することができるようです。
- 計算する真夜中の後モジュール 130.
- 130からこの数字を引いてください。
- 答えが60未満の場合は、その時間だけ待ってから続けてください。
- 答えが130ならすぐに続けてください。
答え2
systemdディストリビューションを使用している場合は、systemdタイマーを使用してこのレベルのタイミング解像度を取得できます。ユースケースに応じて、これをdelta-t(ブート後x秒ごと)として使用するか、ウォールクロック時間(00:00:10、00:02:10など)を使用して設定できます。
つまり、2つのファイルが生成されます。
最初は .timer ファイルで、ここで説明。これはタイマーイベントのタイミングを設定し、タイムアウトイベントが発生したときに発生するアクションを設定します。定義する基準はさまざまです。たとえば、起動時にすぐに実行し、130秒ごとに実行しますか?下のランレベルにある場合でも実行しますか?エラーが発生した場合は、引き続き実行しますか?簡単に言えば、Systemdはinitファイルとcronジョブを使用する従来のアプローチよりはるかに複雑になりました。ただし、cronの代わりにそれを使用するとタイミングの問題が解決されます。
2番目のファイルは通常、タイマーサービスによって呼び出される.serviceファイルです。このファイルは、cronジョブの機能(単純なコマンドまたはより複雑な操作を可能にする他のスクリプト呼び出し)を定義します。サービスファイルは通常「oneshot」に設定されます。ねえ詳細については。
このファイルは/etc/systemd/system/にコピーする必要があり、次のコマンドを実行してタイマーサービスを有効/開始します。
systemctl enable mycronjob.timer
systemctl start mycronjob.timer
Journalctlを使用して実装を確認/デバッグできます。詳細については、次を参照してください。ウィキペディア議論。