我已经配置了 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= 配置的计时器有效。