У меня есть скрипт python (3.6), который делает некоторые вещи с данными, полученными из базы данных Oracle.
Затем у меня есть сценарий оболочки для автоматизации, который выполняет сценарий. Я планирую выполнение такой оболочки в crontab .
Если я запускаю оболочку как автономную (sh shell.sh), она работает отлично, в то время как при запуске задания crontab с Oracle DB происходит сбой -> класс 'cx_Oracle.DatabaseError'
Я пытаюсь упростить используемый код, скрипт Python выглядит следующим образом:
#!/usr/bin/python3.6
# coding: utf-8
import pandas as pd
import cx_Oracle
try:
conn = cx_Oracle.connect(username/pwd@hostname:port/db_name)
query = """SELECT * FROM schema.table"""
df = pd.read_sql(query, con = conn)
except:
print(sys.exc_info()[0])
raise
sys.exit(1)
Оболочка делает что-то вроде этого:
#!/usr/bin/env bash
if [something]
then
python3.6 pyscript.py
fi
Результат crontab -l :
* * * * * cd /root/workindirectory ; sudo sh shell.sh >> test.out
Спасибо всем заранее за любую помощь.
РЕДАКТИРОВАТЬ: указать, что сценарии оболочки и Python имеют разрешения 777