【问题标题】:Cannot run python script in a crontab无法在 crontab 中运行 python 脚本
【发布时间】:2020-05-25 02:35:12
【问题描述】:

我正在尝试运行 python 脚本,并且正在使用此代码来运行 crontab:

SHELL = /home/boogieman/codeCopy.py
PATH = /sbin:/bin:/usr/sbin:/usr/bin
MAILTO = ""
* * * * * /usr/bin/python/ /home/boogieman/codeCopy.py

我也试过SHELL = /bin/bash,但还是看不出有什么不同。 当我在终端中运行codeCopy.py 时,它就像一个魅力。但仍然无法弄清楚我在使用 crontab 时做错了什么。 这是我的一段代码,它将字典保存到 csv 文件中:

from time import strftime
t = strftime('%a, %d %b %Y %H:%M:%S')

body.update({'Time':t})

with open('/home/boogieman/r3edata.csv','a+', newline='') as fhandle:
        writer = csv.writer(fhandle)
        items = body.items()
#       writer.writerow([key for key, value in items])
        writer.writerow([value for key, value in items])

每次运行时,我都会尝试保存字典的副本。 我在几页上找到的解决方案对我不起作用。我更改了 Shell 路径,更新了确切的文件路径,并尝试了每个用户都可以访问的脚本。 我在我的 crontab 命令中明确使用了/usr/bin/python/,并在我的python 脚本中也尝试了#!/usr/bin/python/。两个都不行。

你能帮我解决这个问题吗?提前谢谢你

【问题讨论】:

    标签: python linux ubuntu cron


    【解决方案1】:

    /etc/crontab 中尝试以下行:

    * * * * * python3 /home/boogieman/codeCopy.py
    

    你也可以考虑这一行:

    * * * * * cd /home/boogieman && python3 codeCopy.py
    

    因此您将在正确的文件夹中运行您的脚本。

    【讨论】:

    • 在尝试这种方法之前我应该​​对 shell 进行任何更改吗?
    • 不,它适用于我使用这种技术的笔记本电脑和树莓派。
    • 更改etc/crontab 对我有用。非常感谢
    猜你喜欢
    • 2016-03-06
    • 2016-06-18
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 2017-12-16
    • 2012-10-26
    • 1970-01-01
    相关资源
    最近更新 更多