Cron 的 PATH 问题 - 未运行 bash/python 脚本

Cron 的 PATH 问题 - 未运行 bash/python 脚本

我已经花了两天时间排除这个命令的故障,所以任何帮助我都非常感谢。我想执行一个 Python 脚本,据我所知,这必须通过 bash 脚本来完成,因为 cron 不直接运行 Python?我怀疑我没有正确执行 PATH,这导致 bash 脚本运行,但 Python 脚本不运行。

我正在尝试运行以下命令:

* * * * * bash /home/dpa/PycharmProjects/Parser/start_helper &>/tmp/mycommand.log

它确实输出了 mycommand.log,所以我知道它执行了,但它没有启动 python 脚本。.log 文件是空白的。

bash 脚本名为 start_helper,没有 .sh 扩展名,因为我读到 crontab 不“喜欢”标点符号。该脚本唯一要做的就是使用以下内容启动 python 脚本:

#!/bin/bash
PATH=/home/dpa/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

python /home/dpa/PycharmProjects/Parser/Parser.py

我保证如下:

  1. Cron 守护程序正在运行
  2. 权限:我尝试在终端中运行该脚本,并且成功了
  3. 脚本可执行
  4. 脚本归 root 所有
  5. PATH - echo $PATH 给出以下内容:

     /home/dpa/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
    

cron输出的路径显示以下内容:

LC_TIME=nb_NO.UTF-8
HOME=/home/dpa
LC_MONETARY=nb_NO.UTF-8
LOGNAME=dpa
PATH=/usr/bin:/bin
LC_ADDRESS=nb_NO.UTF-8
LANG=en_US.UTF-8
LC_TELEPHONE=nb_NO.UTF-8
LC_NAME=nb_NO.UTF-8
SHELL=/bin/sh
LC_MEASUREMENT=nb_NO.UTF-8
LC_IDENTIFICATION=nb_NO.UTF-8
PWD=/home/dpa
LC_NUMERIC=nb_NO.UTF-8
LC_PAPER=nb_NO.UTF-8

相关内容