如何使用at命令来设置python脚本在指定时间执行

2 人关注

当我试图用cron来执行我的python脚本时,我发现有一个at命令,AFAIK,cron是定期执行的,但我的情况是只在指定时间内执行一次。 我的问题是如何在at命令中添加python脚本。 还有,是否有一些python软件包可以控制at命令?

我的开发操作系统是ubuntu 10.04 lucid,而我的产品服务器是ubuntu-server 10.04 lucid版本。 事实上,我想通过python脚本在命令中添加python脚本任务,哪些文件的改变可以影响到命令中添加或删除新的工作。

1 个评论
如果你编辑Q,添加你完全跳过的关键信息(什么? system 例如,你是在哪里运行的?),我们很乐意帮助你。(不,我没有听说过Python包)。
python
cron
package
execute
at-job
mlzboy
mlzboy
发布于 2010-09-23
4 个回答
bstpierre
bstpierre
发布于 2010-09-23
已采纳
0 人赞同

This works on my linux box:

echo python myscript | at 10:15

Edit: stupid quoting...

axil
axil
发布于 2010-09-23
0 人赞同

正如手册中所说。 at (相对于 cron 例如)不尊重 shebang( #!/usr/bin/env python 行)。它总是使用 /bin/sh 来运行文件。

因此,为了运行一个Python脚本,你必须使用以下两种方法之一

echo python myscript.py | at 10:15

按照@bstpierre的建议,或者创建一个额外的文件

myscript.sh:

python myscript.py
at -f myscript.sh at 10:15

这样做没有必要(但也无妨)。

axil
对于这种奇怪的行为,我可以想到的一个合乎逻辑的解释是, -f 标志是后来才出现的,为了保持向后的兼容性,他们决定忽略这一点。 at 从stdin和由 -f 指定的文件中读取相同的命令,会得到不同的结果)
knitti
knitti
发布于 2010-09-23
0 人赞同

输入 man at ,它将解释如何使用它。各个系统的使用方法会略有不同,所以在这里告诉你具体的使用方法是没有用的。

Zimm3r
Zimm3r
发布于 2010-09-23
0 人赞同

Just do

python FILE | at TIME > app.log