В доступе для чтения pickle-файла в планировщике и скрипте bash отказано - PullRequest
0 голосов
/ 23 октября 2019

У меня есть исполняемый скрипт 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 файлы. Но, в результате выполнения предложенных сценариев Python (file1.py и file2.py) в файле .sh, я получил и ошибка:

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

btw: example.pickle файл создается в процессевыполнить file1.py, а не запускать там, где он использовался.

При попытке выполнить sh run_script.sh терминалом без какого-либо планировщика, нет ошибок для разрешений. Итак, результат - это успех.

Я тоже пытаюсь найти свой вопрос, но он не был успешным. ( Отказано в доступе для скрипта Python, использующего Bash? ), Ошибка ввода-вывода при сохранении данных в рассоле

Вопрос в том, как я могу установить разрешение root с помощью скрипта bashнеобходимые скрипты Python?

1 Ответ

0 голосов
/ 26 октября 2019

Это было исправлено с помощью подхода Path:

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

Спасибо всем за вдохновенные идеи :)

...