如何在特定时间运行批处理文件?

如何在特定时间运行批处理文件?

我尝试过使用batchat命令,但没有成功。我在某个位置有一个批处理文件,可以说“$DD/batchfile.batch”。这是我尝试过的。

batch -f $DD/batchfile.batch 10:00 today
at -f $DD/batchfile.batch 10:00 today

虽然它会添加作业,并且我可以在 下看到它atq,但它似乎没有执行批处理。当时间到来时,没有任何反应,该批次将从队列中删除。如果我在终端中单独运行批处理文件,它就会正确执行。

有任何想法吗?

答案1

我猜你的操作系统是 Linux 的某种风格。

确保您的$DD/batchfile.batch文件存在并且可读且可执行。

我相信你的批次(1)工作开始了。也许它很快就退出了(例如因为PATH对于批处理作业可能不是您的交互式作业PATH,或者因为您的环境与交互式 shell 中的环境不同 - 请参阅环境(7))。你可以用一些开始你的脚本记录器(1)命令来获取系统日志中的一些日志信息和/或其中的一些重定向打印。您还可以使用类似以下命令启动批处理作业

 /bin/date +"start of my batch %c%n" > /tmp/batchstart.stamp
 echo path is $PATH >> /tmp/batchstart.stamp
 /usr/bin/printenv >> /tmp/batchstart.stamp

稍后检查是否存在并使用某些编辑器(如或)或寻呼机(如)/tmp/batchstart.stamp 查看其内部emacsgeditless

顺便提一句,batchat定时任务(5)工作经常发送电子邮件(到您的帐户当地的机器)。您是否在本地计算机上安装了一些(也许是简单的)SMTP 服务器?您有有效的邮件帐户或别名(例如 中/etc/aliases)吗?

另外,查看系统日志文件(通常在/var/log/例如/var/log/messagesor /var/log/syslogor /var/log/daemon.logor下/var/log/auth.log

相关内容