python - 如果脚本不在主文件夹中,Cron 不会运行 Python 脚本

标签 python linux cron

我知道 cron 反复无常,我正在尝试找出如何在 Linux 上处理它。

我有以下 test_cron.py 可执行 Python 脚本用于测试 cron :

#!/usr/bin/env python

import os

os.makedirs('test_cron_dir')
f = open('test_cron_dir/test_file','w')
f.write('stuff')
f.close()

我在 crontab 中添加了两行,以在两个不同的文件夹中运行脚本:

* * * * * python /home/me/test_cron.py
* * * * * python /home/me/some_folder/test_cron.py

问题是:cron 运行位于 /home/me/ 中的 test_cron.py 脚本,但不运行位于 /home/me/some_folder/ 中的脚本。 我已将脚本中的路径更改为绝对路径,但它不会改变任何情况。另外,我尝试使用 root crontab,但它没有改变任何东西。

有人可以将知识和经验的光芒照亮我吗?非常感谢。

最佳答案

cron正在运行crontab(5)来自用户主目录的条目。

您需要适当更改目录,即调用 chdir(2)系统调用(通过内置的 cd shell,或者在 python 脚本中使用 os.chdir )。

您应该在脚本中查询当前目录(使用 getcwd(3)pwd 命令,或 Python 中的 os.getcwd)。

如果运行命令,还要检查您的PATH

关于python - 如果脚本不在主文件夹中,Cron 不会运行 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18121733/

相关文章:

python - hvplot.heatmap 与 Pandas 数据框 : How to specify value dimensions?

python - 如何从直方图重建原始数据?

python - 了解 Python 进程的内存增长(VmRSS 与 gc.get_objects)

cron - 是否有可能在不到一个小时的时间内安排好 gitlab pipeline ?

python - scikit-learn 中 NMF 的自定义矩阵

python - 从维基数据 API 获取 python 中的项目标签

linux - 通过 ssh 发送到主机的命令的返回状态

linux - 在 Linux 上排序的奇怪结果

python - 当由 cron 作业启动时,将打印 python 输出重定向到一个文件

unix - 在 UNIX 中递归定位最近更新的文件