基于定时器同步systemd单元

基于定时器同步systemd单元

我只是想知道 systemd 计时器/相关单元的同步。我有一个备份脚本每小时/每天/每周运行。我使用计时器Persistent=TrueOnCalendar=...选项设置来启动单元。

问题是,如果由于机器关闭而错过了单元,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/

相关内容