Systemd 日历间隔,“无法解析日历规范”

Systemd 日历间隔,“无法解析日历规范”

我在 Ubuntu 16.04 上。当我尝试使用时间语法显示这里( Mon..Fri) 我收到错误。看来我必须使用“Mon-Fri”。

$ sudo systemctl status mytouch.timer
● mytouch.timer - Runs mytouch every hour
   Loaded: error (Reason: Invalid argument)
   Active: inactive (dead) since Thu 2018-12-13 16:16:35 UTC; 1h 11min ago

Dec 13 17:15:20 ip-10-0-0-123 systemd[1]: [/etc/systemd/system/mytouch.timer:5] Failed to parse calendar specification, ignoring: Mon..Fri 22:30
Dec 13 17:15:20 ip-10-0-0-123 systemd[1]: mytouch.timer: Timer unit lacks value setting. Refusing.

另外,我在日期后面放置时区时遇到了问题,例如:2003-03-05 05:40:00 UTC

最后,我看到了使用的建议systemd-analyze calendar,但却产生了这个错误:

$ systemd-analyze calendar Mon,Wed,Fri,Sat\ \*-\*-\*\ 11:00:00
Unknown operation 'calendar'.

在哪里可以找到我正在运行的 systemd 版本的文档。

答案1

于 2021/08/10 编辑,感谢 @jcomeau_ictx 的评论,我意识到我错误地阅读了问题并提供了一个错误的答案以及一个有缺陷的命令。

旧版本确实部分支持 doted 命令,因此您必须改用-
我不再能访问旧版本,因此我无法验证哪些命令有效,哪些命令无效(..例如,可用于列出日期)。
但是,您仍然可以使用该systemctl list-timers命令查看您的情况。

正如 @echo 所言,systemd-analyze calendar16.04 上不可用。
我只能从 18.04 Ubuntu 开始使用它,我认为旧版本上没有等效命令。
祝你好运。

答案2

对于 ubuntu 16.04,时间语法是http://manpages.ubuntu.com/manpages/xenial/man7/systemd.time.7.html,与‘标准’略有不同。

对于systemd-analyze,ubuntu 16.04 版本也不同。下面是输出 systemd-analyze -h

Commands:
  time                    Print time spent in the kernel
  blame                   Print list of running units ordered by time to init
  critical-chain          Print a tree of the time critical chain of units
  plot                    Output SVG graphic showing service initialization
  dot                     Output dependency graph in dot(1) format
  set-log-level LEVEL     Set logging threshold for manager
  set-log-target TARGET   Set logging target for manager
  dump                    Output state serialization of service manager
  verify FILE...          Check unit files for correctness

相关内容