타이머를 기반으로 시스템 장치 동기화

타이머를 기반으로 시스템 장치 동기화

시스템 타이머/관련 장치의 동기화에 대해 궁금합니다. 나는백업 스크립트매시간/매일/매주 실행합니다. 타이머 Persistent=True와 옵션 설정을 사용하여 OnCalendar=...장치를 시작합니다.

문제는 시스템이 다운되어 장치 하나가 누락된 경우 systemd가 한 번에 여러 장치를 시작한다는 것입니다. 이로 인해 문제가 발생할 수 있으므로 스크립트는 잠금 파일을 사용하여 언제든지 하나의 인스턴스만 실행되도록 합니다. 스크립트가 실행될 때 잠금 파일이 있으면 스크립트가 실패하고 백업이 수행되지 않습니다. 나는 이것을 피하기 위해 작업이 병렬로 실행되지 않도록 systemd에 방법이 있는지 궁금합니다. (나는 이것이 anacron에서 가능하다는 것을 기억하는 것 같습니다).

편집: 단위 파일( [email protected])은 다음과 같습니다.

[Unit]
Description=rsnapshot (%I) backup

[Service]
Type=oneshot
Nice=19
IOSchedulingClass=3
ExecStart=/usr/bin/rsnapshot %I

타이머의 예는 다음과 같습니다( rsnapshot-hourly.timer).

[Unit]
Description=rsnapshot hourly backup

[Timer]
OnCalendar=hourly
Persistent=true
[email protected]

[Install]
WantedBy=timers.target

실행 중인 서비스는 다음과 같습니다( ).systemctl status [email protected]

[email protected] - rsnapshot (daily) backup
   Loaded: loaded (/etc/systemd/system/[email protected]; static; vendor preset: disabled)
   Active: activating (start) since Do 2015-07-23 21:42:03 CEST; 1min 2s ago
 Main PID: 527 (rsnapshot)
   CGroup: /system.slice/system-rsnapshot.slice/[email protected]
           ├─527 /usr/bin/perl -w /usr/bin/rsnapshot daily
           └─560 /bin/rm -rf /media/large_store/backup/bigbox/daily.6/

관련 정보