【问题标题】:Ubuntu 16, Run Python script with CrontabUbuntu 16,使用 Crontab 运行 Python 脚本
【发布时间】:2017-11-11 13:02:18
【问题描述】:

出于测试目的,我有一个非常简单的 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.."

我已将文件放在这里,它具有完全权限:

usr/share/pyshared/scripts/test_script.py

当我使用以下命令手动运行脚本时,脚本会运行并创建我的测试文本文件:

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

在我的 crontab 文件中,我有以下未运行的内容(出于测试目的,应该每分钟运行一次)。

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

第一次尝试 crontab,对 linux 也很陌生,如果我在这里遗漏了一些相当明显的东西,请原谅我,提前致谢。

【问题讨论】:

    标签: python linux ubuntu cron


    【解决方案1】:

    在 crontab 中使用绝对路径:

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

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

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

    【讨论】:

    • 一些解释:cron 使用不同的 shell 并在空环境中执行。如果没有绝对路径,它甚至找不到 Python 解释器,因为没有定义 PATH 变量。
    猜你喜欢
    • 2013-07-05
    • 2021-02-28
    • 2021-09-10
    • 2015-10-05
    • 2017-12-16
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 2022-01-05
    相关资源
    最近更新 更多