タイマーに基づくシステムデバイスの同期

タイマーに基づくシステムデバイスの同期

システムタイマー/関連デバイスの同期について疑問に思います。私バックアップスクリプト毎時間/毎日/毎週実行します。タイマーPersistent=Trueとオプション設定を使用してOnCalendar=...デバイスを起動します。

問題は、システムがダウンして1つのデバイスが欠落している場合、systemdが一度に複数のデバイスを起動することです。これにより問題が発生する可能性があるため、スクリプトはロックファイルを使用していつでも1つのインスタンスしか実行できません。スクリプトの実行時にロックファイルが存在する場合、スクリプトは失敗し、バックアップは実行されません。私はこれを避けるためにタスクが並列に実行されないようにsystemdにメソッドがあるかどうか疑問に思います。 (私はこれがアナクロンで可能であることを覚えているようです)。

編集:単位ファイル([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/

関連情報