【问题标题】:Crontab, python script fails to runcrontab,python脚本运行失败
【发布时间】:2015-09-10 14:05:07
【问题描述】:

我有一个 bash 脚本来自动化我所做的一些事情。 bash 调用 2 个 python 脚本,如果我正常运行 bash 脚本,一切都会运行,没有任何错误。我设置了一个 cron 作业来自动化它,当我检查日志时,我注意到 python 脚本根本没有运行。它给了我以下错误。

python: can't open file 'movefiles.py': [Errno 2] No such file or directory

python: can't open file 'create_log_shimmer.py': [Errno 2] No such file or directory

这两个文件都存在并在直接调用 bash 脚本时运行。

【问题讨论】:

  • 在 cron 作业中,始终使用绝对(完整)路径名,而不是相对路径名。您可能还需要更新(来源)您的环境,例如. $HOME/.bash_profile

标签: python bash unix crontab


【解决方案1】:

问题: 1) Crontab 默认路径在别处

2) 在 python .py 文件中,您没有在代码中提到完整的文件名 [如果您使用过]

**3) 运行时在cron文件中指定完整路径**

下面显示了创建 CRON 的最佳方法(不是最好的,但对我来说很简单”

拥有 cronjob 的最佳方式(crontab 是)

1) 在该目录中创建一个文件 vi 文件名.cron

2) 在下面的文件名类型中(这会将当前路径设置为 cron 路径)

# echo PATH=$PATH > tmp.cron
# echo >> tmp.cron
# crontab -l >> tmp.cron
# crontab tmp.cron

* * * * * python ___________.py

3) 现在记住保存它并启动 cron 类型 crontab 文件名.cron。 (在您的 python .py 代码中,如果您正在访问任何文件或写入文件或数据库,请提供该位置的完整路径)

4) 您将能够轻松运行 cron。

【讨论】:

    【解决方案2】:

    cron的工作目录和你直接运行脚本的目录不同。

    • 使您的 bash 脚本使用 Python 脚本文件的绝对路径。

    • 或制作 bash 脚本以将目录更改为直接运行脚本的位置。

    【讨论】:

    • 谢谢,我为 python 脚本使用了绝对路径并解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 2015-10-05
    • 2017-12-16
    • 2011-10-03
    • 2017-11-20
    • 1970-01-01
    • 2013-01-14
    • 2021-05-01
    相关资源
    最近更新 更多