Python cron作业:/ usr / local / bin:错误的解释器:权限被拒绝

Tes*_*ty8 4 python linux cron

我在CentOS VPS中设置了以下crontab:

SHELL=/bin/bash
HOME=/

* * * * * /root/ebay/findcheapitems.py
Run Code Online (Sandbox Code Playgroud)

该脚本可以使用以下命令手动正常运行:

python2.7 ebay/findcheapitems.py
Run Code Online (Sandbox Code Playgroud)

它已通过dos2unix运行以进行EOL转换,具有-rwxr-xr-x权限,并且文件的第一行具有:

#!/usr/local/bin python2.7
Run Code Online (Sandbox Code Playgroud)

但是,每次cron作业尝试运行时,我都会收到邮件,说:

/bin/bash: /root/ebay/findcheapitems.py: /usr/local/bin: bad interpreter: Permission denied
Run Code Online (Sandbox Code Playgroud)

我已经使用“哪个”确认了python2.7的位置:

# which python2.7
/usr/local/bin/python2.7
Run Code Online (Sandbox Code Playgroud)

我是一名Linux初学者,所以我确定我缺少一些简单的东西!

fal*_*tru 5

您需要将文件路径指定为一个路径,而不是目录和文件名:

#!/usr/local/bin/python2.7
Run Code Online (Sandbox Code Playgroud)

否则,目录路径将被视为可执行文件。

更新正如Kevin Guan所建议的,您也可以使用/usr/bin/env而不是指定可执行文件的完整路径。

#!/usr/bin/env python2.7
Run Code Online (Sandbox Code Playgroud)