시스템 타이머/관련 장치의 동기화에 대해 궁금합니다. 나는백업 스크립트매시간/매일/매주 실행합니다. 타이머 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/