我已经花了两天时间排除这个命令的故障,所以任何帮助我都非常感谢。我想执行一个 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
我保证如下:
- Cron 守护程序正在运行
- 权限:我尝试在终端中运行该脚本,并且成功了
- 脚本可执行
- 脚本归 root 所有
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