拒绝调度程序和bash脚本中读取的pickle文件的权限

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

我有一个可执行的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文件。但是,由于通过file1.py文件执行建议的python脚本(file2.py.sh),我收到了错误消息:

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

btw:example.pickle文件是在执行file1.py的过程中创建的,没有超出其使用的位置。

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

我也尝试搜索我的问题,但这没有成功。 (Permission denied for Python script using Bash?),IO Error while storing data in pickle

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

python-3.x bash cron pickle root
1个回答
0
投票
通过Path的使用方法进行了修复:

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

感谢大家的启发思想:)
© www.soinside.com 2019 - 2024. All rights reserved.