添加一次性触发 systemd 定时器

添加一次性触发 systemd 定时器

我有一个 systemd 定时器,它在星期五 23:00 运行,以便在需求低迷时每周进行一次批量数据处理。今天是星期二,我想测试我所做的更改,我希望它今天 23:00 开始,这样我就可以明天检查,而不必等到下周一。

有没有一种简单且内置的方法来安排一次性触发 systemd 计时器?例如systemd trigger-timer --timer whatever.timer --at 2021-06-22T23:00或类似的东西?我希望它只在此时启动,我不想添加新的重复规则。我希望它每周五 23:00 和今天 23:00 定期运行。

我确信我可以对某些东西进行破解sleep 10hr ; systemctl start whatever.service或者手动编辑/etc/systemd/system/whatever.timer文件,但如果有适当的方法来“一次性”触发计时器,我更愿意使用它。

这是在 Ubuntu Linux 20.04 和 18.04 上,无论是什么版本的 systemd(245?)

答案1

您可以添加

OnCalendar=2021-06-22T23:00

到您的计时器单元文件。完成后将其删除。或者,如果您只想触发服务,您可以执行以下操作:

systemd-run --on-calendar=2021-06-22T23:00 systemctl start example.service

答案2

一次性触发的计时器不是计时器,一次性触发服务可以通过at或使用 cron 来实现。

at 23:00 <<<"systemctl start example.service"与您正在寻找的内容相当。

相关内容