at命令未执行

hpe*_*sen 5 unix bash

我试图使atbash命令运行,但是它对我不起作用。我可以将作业添加到队列中,但是时间到了就不能运行。我究竟做错了什么?

hpek@melda:~$ cat /usr/lib/cron/at.deny 
hpek@melda:~$ atq
hpek@melda:~$ at now +2 minutes
echo TTTEEEST
job 12 at Sun May  6 02:09:00 2012
hpek@melda:~$ date
Sun May  6 02:10:24 CEST 2012
hpek@melda:~$ atq
12  Sun May  6 02:09:00 2012
hpek@melda:~$ 
Run Code Online (Sandbox Code Playgroud)

Pau*_*aul 5

它工作正常。只是运行的命令at不会将其输出写入您从中调用它的终端。

尝试:

at now +2 minutes
echo TTTEEEST > new_file_test
Run Code Online (Sandbox Code Playgroud)

您将在两分钟内看到该文件出现。


Dav*_* W. 5

查看一下/var/at/jobs您的职位是否列在其中。(根据操作系统,它可能是不同的目录)。

默认情况下,at大多数系统上未启用。为了让at作业真正执行,必须执行atrun命令。

该命令通过launchdcron执行,具体取决于系统。

确切的机制因系统而异,因此您必须阅读atatrun等上的所有各种联机帮助页,以验证at您的系统是否确实启用了该功能,以及您是否有权运行作业。您的系统上通常同时存在ant 允许ant 拒绝文件,因此您需要检查这两个文件。您必须既位于允许文件中,又不在拒绝文件中。

最重要的是,您必须确保at在您的系统上启用了该功能(出于安全考虑,它通常被禁用)。