![添加一次性触发 systemd 定时器](https://linux22.com/image/767762/%E6%B7%BB%E5%8A%A0%E4%B8%80%E6%AC%A1%E6%80%A7%E8%A7%A6%E5%8F%91%20systemd%20%E5%AE%9A%E6%97%B6%E5%99%A8.png)
我有一个 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"
与您正在寻找的内容相当。