Скрипт чтения электронных таблиц Google на python не запускается из расписания cron, но работает, когда я запускаю команду shell - PullRequest
1 голос
/ 04 апреля 2019

Я читаю данные из электронной таблицы Google с помощью скрипта Python, скрипт работает нормально, когда я запускаю с помощью команды shell, но он не работал, когда я запланировал это на cron.

пока что проверяетсясписок, который я сделал

  1. имя файла и расположение, связанные с проблемой нет доступных
  2. с помощью tail -f /var/log/syslog | grep CRON этой команды я видел, что расписание запускается вовремя

  3. Я добавил свой метод сценария в другой сценарий, который работает нормально из cron, но тем не менее этот метод не работал во времена выполнения cron

инструкция cron

/home/ubuntu/.virtualenvs/python_3.5/bin/python /location/script_name.py

Есть ли другой способ проверить, почему он не работает из расписания cron, а работает нормально из команды оболочки.

1 Ответ

1 голос
/ 04 апреля 2019

После получения предложения от @stovfl я добавил >> /tmp/cron.log 2>&1 эту строку

/home/ubuntu/.virtualenvs/python_3.5/bin/python /location/script_name.py  >> /tmp/cron.log 2>&1

с моим оператором cron и проверил файл журнала, и обнаружил, что не использовал путь экспликации для аутентификации файла json, хотя оннаходится внутри папки проекта, поэтому время команды оболочки это работало нормально.использованный код, как показано ниже

credentials = ServiceAccountCredentials.from_json_keyfile_name('file_name.json')

, и поэтому, когда cron запустил скрипт, он не смог найти местоположение файла аутентификации и не запустился.затем я изменился, как показано ниже

credentials = ServiceAccountCredentials.from_json_keyfile_name('location_of_file/file_name.json')

, теперь он работает как талисман от команды cron и shell

...