在调度程序和 bash 脚本下读取泡菜文件的权限被拒绝

Permission denied for read pickle-file under scheduler and bash script

我有一个可执行的 bash 脚本 (.sh),它应该是 运行 2 python 个脚本(只有当第一个成功完成时,第二个才会开始),run_script.sh 有以下观点:

#!/bin/bash
#!/usr/bin/python3
scripts='/path/to/file/file1.py /path/to/file/file2.py'
for s in $scripts
do
    echo $s
    /usr/bin/python3 $s
done

作为调度程序,我使用 crontab job:

26 14 10-23 * * cd /path/to/file/ && /path/to/file/run_script.sh >> /home/log/crontab_LOG.log 2>&1

在 python 脚本中的数据聚合过程中,我使用 .pickle 文件。 但是,由于 .sh 文件执行了建议的 python 脚本(file1.pyfile2.py),我收到了错误:

PermissionError [Errno 13 ] Permission denied: '/path/to/file/example.pickle'

顺便说一句:example.pickle 文件是在执行 file1.py 的过程中创建的,而不是在它使用的 运行 之外创建的。

当尝试在没有任何调度程序的情况下通过终端执行 sh run_script.sh 时,权限没有任何错误。所以,结果就是成功。

我也尝试搜索我的问题,但没有成功。 (), IO Error while storing data in pickle

问题是如何通过 bash 脚本将 root 权限设置为所需的 python 脚本?

已通过 Path 的使用方法修复:

from pathlib import Path
example_pickle = Path('logs/example_pickle'+datetime.now()+'.pickle')

感谢大家的启发:)