![在指定时区调度作业-“拒绝创建过去的作业”](https://linux22.com/image/1635704/%E5%9C%A8%E6%8C%87%E5%AE%9A%E6%97%B6%E5%8C%BA%E8%B0%83%E5%BA%A6%E4%BD%9C%E4%B8%9A-%E2%80%9C%E6%8B%92%E7%BB%9D%E5%88%9B%E5%BB%BA%E8%BF%87%E5%8E%BB%E7%9A%84%E4%BD%9C%E4%B8%9A%E2%80%9D.png)
我正在尝试指定一个时区,以便at
可以在 bash 脚本中使用它,而不必担心每年调整两次,并收到此错误:
在:拒绝创造注定过去的工作
我哪里做错了?
现在几点了?(英国刚刚从 BST 转为 GMT/UTC,进入冬季)
$ date
Sun 25 Oct 2020 11:00:11 AM GMT
这应该需要大约 5 分钟...
$ at 11:05 UTC
at: refusing to create job destined in the past
尝试使用服务器的命名时区...(实际上,我可以使用我能想到的任何时区 - 例如 CET、EST、EDT、CST、PST、PDT、AEST... - 文档/usr/share/doc/at/timespec只需说“time_base timezone_name”)
$ at 11:05 GMT
syntax error. Last token seen: G
Garbled time
最后证明它在没有任何时区的情况下可以正常工作。
$ at 11:05
warning: commands will be executed using /bin/sh
at>
[...]
版本 3.1.23
Debian 10.6
答案1
根据评论在这个答案中,at
使用环境变量设置的本地时间TZ
。因此你可以这样做:
对于 UTC:
TZ=UTC at 11:05
或者对于使用 GMT/BST 的英国(如适用):
TZ=Europe/London at 11:05