システムタイマー/関連デバイスの同期について疑問に思います。私バックアップスクリプト毎時間/毎日/毎週実行します。タイマー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/