这是我当前的系统日期
root@48392:/home/# date
Mon Apr 25 19:08:13 CEST 2016
现在我安排了一份工作...
root@48392:/home/# echo "ls" | at now
warning: commands will be executed using /bin/sh
job 111254 at Mon Apr 25 19:09:00 2016
根据在,作业 111254 将运行于
Thu Nov 12 19:11:00 2054
答案1
关于以下now
国家man at
:
You can also give times like now + count time-units, where the
time-units can be minutes, hours, days, or weeks
at now
它没有说在没有这样额外的时间单位计数的情况下允许使用它,所以我对你得到未定义/意外的行为并不感到惊讶。
答案2
当时间字符串解析失败时,似乎at now
正在将时间设置为尽可能远的将来now
。该命令batch
旨在立即运行,或者至少在负载允许的情况下尽可能接近现在运行。
您可以通过使用atq
将作业按at
所需时间的请求来重新安排。at
和相关命令的手册页batch
应该为您提供更多信息
答案3
正确答案是:echo 'ls' | at now + 0 minutes
这将“立即”执行脚本。