Bash 不执行at命令
我正在尝试运行Bash 不执行at命令,bash,unix,Bash,Unix,我正在尝试运行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
at
bash命令,但它对我不起作用。我可以向队列中添加作业,但在时间结束时它不会运行。我做错了什么
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:~$
它工作得很好。只是运行在
at
上的命令不会将其输出写入调用它的终端
尝试:
两分钟后您将看到该文件出现。检查您的邮件:
An at - or batch - command invoked from a su(1) shell will
retain the current userid. The user will be mailed standard
error and standard output from his commands, if any. Mail
will be sent using the command /usr/sbin/sendmail. If at is
executed from a su(1) shell, the owner of the login shell
will receive the mail.
查看
/var/at/jobs
,看看您的at作业是否列在那里。(它可能是基于操作系统的不同目录)
默认情况下,大多数系统上不启用at。为了实际执行at
作业,必须执行该命令
此命令可通过或通过执行,具体取决于系统
具体机制因系统而异,因此您必须阅读at
、atrun
等上的所有手册页,以验证系统上是否真的启用了at
,以及您是否有权运行作业。在您的系统上通常都有一个ant-allow和一个ant-deny文件,所以您需要同时检查这两个文件。您必须既在允许的文件中,也不在拒绝文件中
除此之外,您还必须确保您的系统上启用了at
(出于安全考虑,它通常被禁用)。我发现了这一点
首先确保at守护进程正在使用如下命令运行:
# ps -ef | grep atd
root 8231 1 0 18:10 ? 00:00:00 /usr/sbin/atd
如果您没有看到atd正在运行,请使用以下命令启动它:
# /etc/init.d/atd start
为了分析at(d)执行问题,它可能有助于
man at.allow
)systemctrl-a | grep atd
在Ubuntu上)tail-f/var/log/syslog
(在执行时)journalctl-b | grep atd
(找到了,包含进一步的提示)“权限被拒绝”错误也可能是由于在/etc/security/limits.conf中定义了有限的登录次数(针对运行中的
用户)。当与at
命令一起使用时,我也面临同样的问题。但是,如果您尝试使用
或>
重定向输出,则它可以正常工作。还可以尝试其他一些系统命令,如重新启动
,ls>一些文本文件
等,以确保at命令正常工作。否则试试
sudo systemctl enable--now atd
启用at
daemon我还没有收到任何新邮件。如果您给出一个绝对路径名如何?可能(1)处的正在主目录或其主目录中执行脚本。(我的在我用户的主目录中执行;使用/bin/pwd>/tmp/pwd
进行测试)@sarnold:No-它不工作。时间到了,你的工作是否被取消了(从atq
)@Hans-PeterE.Kristiansen是的,你说得对。很抱歉回答错误。您是否正在运行诸如、或之类的工具?任何这些都可能限制cron(8)
运行作业或保存输出。我没有提到我在mac上,因为我认为这并不重要。我现在相信答案可以在这里找到:。我会很快删除这个问题,因为它是重复的。哈!感谢您的反馈;我希望有一个简单的方法来关闭另一个站点上的内容副本,因为这个问题的措辞很好,可能会帮助其他人在将来发现问题。at daemon正在运行?@Leonardo Hermoso:请阅读答案。你知道cent OS 7中/var/at/jobs的位置在哪里吗?
# /etc/init.d/atd start