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

4 投票
4 回答
2418 浏览
提问于 2025-04-16 04:29

当我尝试使用cron来在未来的某个时间执行我的Python脚本时,我发现有一个叫做at的命令。根据我所知道的,cron是用来定期执行任务的,但我这个情况只想在指定的时间执行一次。

我的问题是,如何将Python脚本添加到at命令中?另外,有没有什么Python库可以用来控制at命令?

我的开发操作系统是Ubuntu 10.04 lucid,而我的产品服务器也是Ubuntu-server 10.04 lucid版本。实际上,我想通过Python脚本将任务添加到at命令中,哪个文件的变化可以影响at命令添加或移除新任务。

4 个回答

3

根据手册的说明,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

这样就不需要shebang了(不过有也无妨)。

4

在我的Linux电脑上,这个可以正常运行:

echo python myscript | at 10:15

补充说明: 引号用错了...

-1

只需要这样做:

python FILE | at TIME > app.log

替换内容:

FILE - 你的 .py 文件(记得包括开头的那一行)

TIME - 你想要的时间

撰写回答