systemd: 재시도 타이머

systemd: 재시도 타이머

일부 시스템을 백업하기 위해 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가 설정된 경우에도 한 작업이 잠금을 유지하고 두 번째 작업이 실패하는 시간에 가깝게 백업이 실행되는 경우가 많다는 것입니다.

저는 이 문제를 몇 가지 다른 방법으로 해결할 수 있다는 것을 알고 있습니다. 별도의 저장소를 사용할 수도 있고, Ansible을 사용하여 배포 시 OnCalendar 표현식을 변경할 수도 있고, 수동으로 변경할 수도 있습니다. systemd를 더 잘 배우기 위해 제가 추구하는 솔루션은 실패할 경우 일정 시간 후에 백업 작업을 다시 시도하는 구성을 만드는 것입니다. 내 생각에는 systemd가 이를 수행할 수 있는 방법을 제공해야 하는 것 같습니다. 가능합니까? 그렇다면 어떻게 해야 할까요?

답변1

--lock-waitborgs 또는 borgmatics 구성에서 동등한 설정( storage-> )을 사용하여 lock_wait작업이 잠금을 더 오래 기다리도록 할 수 있습니다 . 물론 모든 백업이 지정된 시간에 따라 실행되도록 하려면 약간의 조정이나 실험이 필요합니다.

관련 정보