Ubuntu 16,使用Crontab运行Python脚本

Jon*_*ley 2 python linux ubuntu cron

出于测试目的,我有一个非常简单的python脚本,它创建了一个文本文件,以当前日期时间命名,所以我可以告诉它何时运行:

#!/usr/bin/python

from time import gmtime, strftime

try:

    filename = strftime("%Y-%m-%d %H:%M:%S", gmtime())
    f = open(filename+'.txt', 'w')
    f.write('HelloWorld')
    f.close()
except StopIteration:
    print "An error has occurred.."
Run Code Online (Sandbox Code Playgroud)

我已将文件放在此处,并且具有完全权限:

usr/share/pyshared/scripts/test_script.py
Run Code Online (Sandbox Code Playgroud)

当我使用以下内容手动运行脚本时,脚本将运行并创建我的测试文本文件:

python ~/../../usr/share/pyshared/scripts/test_script.py
Run Code Online (Sandbox Code Playgroud)

在我的crontab文件中,我有以下不运行(应该每分钟运行一次以进行测试).

* * * * * python ~/../../usr/share/pyshared/scripts/test_script.py

第一次尝试使用crontab和相当新的linux,如果我错过了一些相当明显的东西,请原谅我,提前谢谢.

Vác*_*hár 5

在crontab中使用绝对路径:

* * * * * /usr/bin/python /usr/share/pyshared/scripts/test_script.py
Run Code Online (Sandbox Code Playgroud)

另外,在脚本中指定绝对路径:

filename = "/home/MYUSER/"+strftime("%Y-%m-%d %H:%M:%S", gmtime())
f = open(filename+'.txt', 'w')
Run Code Online (Sandbox Code Playgroud)

  • 一些解释:cron使用不同的shell并在空的环境中执行.没有绝对路径,它甚至找不到Python解释器,因为没有定义PATH变量. (2认同)