我尝试每天只运行一次这个特定的 shell 脚本。这是我的 runLucene.py
代码:
#!/usr/bin/env python
import os
from extras.download_datos_desambiguar import news_Lucene
x=datetime.today()
y=x.replace(day=x.day, hour=09, minute=00, second=0, microsecond=0)
delta_t=y-x
secs=delta_t.seconds+1
def fourdlife():
print "checking function"
os.system("~/code/4dlife_repo/4dbatch/src/engines/extras/download_datos_desambiguar/news_Lucene.py")
t = Timer(secs, fourdlife)
t.start()
print "timer started"
我在我的 ProcesosContinously.py
文件中运行此代码,如下所示:
while True:
os.system("./runl.sh")
#some other processes
其中 runl.sh
是
python ~/code/4dlife_repo/4dbatch/src/engines/extras/download_datos_desambiguar/news_Lucene.py
此 Python 代码始终在我的 apache2
服务器上运行。
但是,这适用于任何给定时间,而不仅仅是指定时间。我究竟做错了什么?
另外,我觉得有更好的方法来做到这一点。我查看了 cron 任务,但这不是我想要的。我不希望我的程序进入 sleep()
状态,因为我需要在 runl.sh
进程之后运行其他进程。最好的方法是什么?
最佳答案
命令 crontab -e
将打开一个交互式编辑器,您可以在其中定义 cron 作业。
在该编辑器的缓冲区中,您可以输入如下所示的一行(然后保存):
00 00 * * * /path/to/script.sh
此命令将在每个午夜运行 script.sh
。
关于python - 如何每天运行一次shell脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29214926/