Systemd 定时器 rsnapshot 每周

Systemd 定时器 rsnapshot 每周

我已经配置了 systemd计时器每小时、每日和每周备份快照在外部高清上。

当我在工作时,HD 已连接,并且我已经配置rsnapshot.conf带选项

no_create_root  1

因此,如果备份路径不存在,则不会创建目录,也不会完成备份。

我的问题是,当备份时间到时我不在上班,并且 HD 未连接,因此没有运行 rsnapshot,但是每周计时器被重置,以便在下次我重新启动机器时(希望在上班时)“重试”。

这是我的计时器配置

[Unit]
Description=rsnapshot weekly backup

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

[Install]
WantedBy=timers.target

如果我 grep 每周运行一次

/var/log/消息

在存在每日或每小时操作的情况下,没有证据表明任何操作成功或失败。

如果我询问计时器状态

sudo systemctl status rsnapshot-weekly.timer

Oct 24 13:30:35 criniv rsnapshot[10991]: /usr/bin/rsnapshot daily: completed successfully
rsnapshot-weekly.timer - rsnapshot weekly backup
Loaded: loaded (/etc/systemd/system/rsnapshot-weekly.timer; enabled)
Active: active (waiting) since lun 2016-10-24 08:46:21 CEST; 5h 48min ago

看起来之前的运行是成功的,但事实并非如此。你能帮我弄清楚如何正确配置它吗?

答案1

根据 Mark 关于计时器配置的建议,我进行了更改日历单元节选自

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

[Timer]
OnCalendar=monday  *-*-* 10:00:00
Persistent=true
[email protected]

这不是我所寻找的,但它可以缓解我的问题。我所寻找的是一个可以修复的调整

OnCalendar=每周

如果机器关闭,则跳过备份的行为 - 如果我按照教程指定日期,也会出现同样的问题,但我通过安排我知道我的机器处于开启状态的时间来避免这个问题。

答案2

Persistent=您可以使用计时器单元文件中的指令通过“追赶”运行创建每周备份,如中所述man systemd.timer

持久性=

采用布尔参数。如果为真,服务单元上次触发的时间将存储在磁盘上。当计时器激活时,如果服务单元在计时器不活动期间至少被触发一次,则立即触发服务单元。这对于在机器关闭时赶上错过的服务运行很有用。请注意,此设置仅对使用 OnCalendar= 配置的计时器有效。

相关内容