从 Crontab 调用时,Python 脚本权限被 shell 脚本拒绝

问题描述 投票:0回答:3

我必须安排一些在我的主目录中调用 shell 脚本的任务。我尝试从这个 Shell 脚本运行 python 脚本,但它不起作用。

到目前为止我已经尝试过以下方法。

  1. 我已经验证 Crontab 确实通过从 shell 脚本回显到输出文件来调用 shell 脚本
  2. 我独立于终端运行 shell 脚本,它成功执行了 python 脚本
  3. 我已将 shell 脚本添加到 chmod 以及 python 脚本

Shell脚本代码

#!/bin/sh

python3 /绝对路径/to/file/myfile.py >> log_script.txt

python bash shell cron
3个回答
1
投票

尝试给出

log_script.txt

的绝对路径

python3 /absolute path/to/file/myfile.py >> /absolute path/to/file/log_script.txt

如果您不想使用绝对路径

log_script.txt
。只需在 cron 工作目录中查找文件
log_script.txt
即可。 可以使用以下方法找到 cron 工作主管(
pwd

https://unix.stackexchange.com/questions/38951/what-is-the-working-directory-when-cron-executes-a-job

你必须检查这个目录中的

log_script.txt


0
投票

尝试: 检查环境变量和路径。 检查工作目录。 确保 Python 脚本具有正确的行。 检查两个脚本的执行权限。 检查日志文件运行 Cron 时是否有任何错误或问题。


0
投票

感谢这里提供的好建议,我终于能够解决这个问题了https://www.bejarano.io/fixing-cron-jobs-in-mojave/,cron需要提供磁盘访问,看来,默认情况下它没有磁盘访问权限,因为一方面不确定是否也允许终端具有完整的磁盘访问权限

只需将以下内容添加到完整磁盘访问下,

系统设置 > 隐私和安全 > 全磁盘访问

/usr/sbin/cron

© www.soinside.com 2019 - 2024. All rights reserved.