我已经configuration了一个systemd 定时器,用于每小时,每天和每周的备份,在外部HD上使用rsnapshot 。
当我在工作高清它连接,我已经configuration了rsnapshot.conf选项
no_create_root 1
这样如果备份path不存在,则目录不会被创build,备份也不会完成。
我的问题是,当备份的时间到期的时候我不在工作,高清没有连接,所以没有rsnapshot运行,但每周定时器重置,而不是重新启动下次重新启动机器(重试)希望在工作)。
这是我的计时器configuration
[Unit] Description=rsnapshot weekly backup [Timer] OnCalendar=weekly Persistent=true [email protected] [Install] WantedBy=timers.target
如果我希望每周运行一次
在/ var / log / messages中
在每天或每小时的手术中,没有任何手术成功的证据。
如果我要求定时器状态
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
这似乎是以前的运行是成功的,但事实并非如此。 你能帮我弄清楚如何正确configuration它?
正如Mark在定时器configuration中所build议的那样,我将OnCalendar从“ 单元”部分改为
[Timer] OnCalendar=weekly Persistent=true [email protected]
至
[Timer] OnCalendar=monday *-*-* 10:00:00 Persistent=true [email protected]
这不是我正在寻找,但它减轻了我的问题。 我正在寻找的是一个修复的调整
OnCalendar =每周
行为,如果机器停机跳过备份 – 同样的问题,如果我指定一个date为教程教导,但我通过安排一个时间段,我知道我的机器上,以避免这个问题。
您可以通过在定时器单元文件中使用Persistent=指令来创build“catchup”运行的每周备份,logging在man systemd.timer 。
永久=
采取布尔参数。 如果为true,则服务单位上次触发的时间将存储在磁盘上。 当定时器被激活时,如果在定时器不活动的时间内至less被触发一次,则服务单元被立即触发。 当机器closures时,这对于赶上错过的服务非常有用。 请注意,此设置仅对configuration了OnCalendar =的定时器有效。