私はいくつかのシステムをバックアップするためにborgbackupを使用しています。それらはすべて同じborgbackupリポジトリを使用します。バックアップジョブを開始するためにborgmaticを使用するsystemdタイマーを作成しました。すべてを配布し、タイマーを設定するAnsibleプレイブックがあります。私のタイマーファイルは次のとおりです。
[Unit]
Description=Run borgmatic backup
[Timer]
OnCalendar=*-*-* 00:00:00
RandomizedDelaySec=10000
OnBootSec=1200
Persistent=true
[Install]
WantedBy=timers.target
すべてのシステムに同じOnCalendar式があります。私が解決しようとしている問題は、RandomizedDelaySecが設定されていても、1つのジョブがロックを維持し、2番目のジョブが失敗する時間の近くにバックアップが実行されることが多いことです。
私はこの問題をいくつかの異なる方法で解決できることを知っています。別々のリポジトリを使用することも、Ansibleを使用して展開時にOnCalendar式を変更することも、手動で変更することもできます。 systemdをよりよく学ぶために私が求めている解決策は、失敗した場合に一定時間後にバックアップジョブを再試行する設定を作成することです。私の考えでは、systemdがこれを行う方法を提供する必要があるようです。可能ですか?それでは、どうすればいいですか?
答え1
--lock-wait
borgs または borgmatics 構成で同等の設定 ( storage
->) を使用して、ジョブがロックをlock_wait
より長く待つようにすることができます。もちろん、すべてのバックアップが指定された時間にわたって実行されるようにするには、わずかな調整や実験が必要です。