每日python任务crontab

时间:2017-10-31 16:49:50

标签: python-3.x cron ubuntu-16.04

我很少有用Python编写的独立项目,我希望执行daily。我将在Ubunutu服务器上使用crontab,但我想写一个script来管理这些项目,最后发送一份报告,其中包含哪些脚本失败,它们产生了什么错误,如果它们成功,执行时间等。

我有2个想法,请帮我决定哪一个更好或者为我提供更好的解决方案?

1:crontab将执行一个bash文件,这个bash文件将启动每个脚本并计算它们运行的​​时间。

2:crontab将执行一个python脚本,该脚本将执行所有其他脚本并计算用于运行的时间等。

抱歉英语不是我的主要语言。

2 个答案:

答案 0 :(得分:1)

好问题!这两种解决方案都非常可行,但在python中编写脚本可能会更容易(解决方案#2)。

Bash脚本很棒,但是如果你在这里制作一个bash脚本,你需要编写另一个脚本,该脚本传递了所有其他脚本的结果。它看起来像这样:

##results.sh
first_result = python script1.py
second_result = python script2.py
python email_results.py $first_result $second_result

使用这种方法,很难对脚本计时,而且通常有点笨拙。

如果你使用了python,你可以使用time.time()来计时,它通常会有点整洁。

##python
import time
import script1

start = time.time()
result = script1()
end = time.time()

time_elapsed = (end - start)

email_results(result, time_elapsed)

希望这有帮助!祝你好运!

答案 1 :(得分:1)

嘿我用python做了!它非常灵活! 但是为了调用我的脚本,我决定使用“os”命令:

folderList=next(os.walk('.'))[1]
    for folder in folderList:
        os.chdir(folder)
        res =subprocess.Popen(["venv/bin/python", "main.py"],stdout=subprocess.PIPE,stderr=subprocess.PIPE)
    os.chdir("..")

它运作良好并执行我的所有脚本!当然我添加了异常处理程序等。谢谢你的回答! :)

相关问题