сценарий python запускался из cron Проблемы с разрешениями при создании и записи файлов

У меня есть задание cron, которое запускает скрипт Python. Сценарий python создает файлы нового файла журнала при каждом запуске и записывает в эти файлы свои действия. Он также выгружает данные в формате .json в определенный каталог. Когда я перечисляю файлы и папки, связанные со сценарием python, включая каталог, в который он должен писать, я вижу, что моя учетная запись пользователя является владельцем. Cronjob также принадлежит мне, поскольку это мои учетные записи пользователей crontab. Cronjob работает нормально, но не создает и не записывает файлы журнала или файлы .json. Я подозреваю, что это проблема с разрешениями. Все файлы - chmod 775. Я не хочу делать его 777, поскольку это угроза безопасности.

Я запускал скрипт python в течение нескольких недель на моем локальном компьютере, и все работает нормально. Это только на сервере, где возникают проблемы. Моя учетная запись на сервере - это учетная запись sudo, поэтому я не уверен, в чем проблема. Это сервер убунту. У кого-нибудь была эта проблема, и кто-нибудь порекомендовал исправить это, не создавая каталог 777?

0
задан 11 November 2020 в 23:04
1 ответ

Я разобрался. Это не связано с разрешениями, это связано с путями к файлам. При запуске скрипта вручную из командной строки указание относительного пути к файлу или каталогу в скрипте python работает. Однако это не работает, когда он работает с Cron. Как только я изменил код, изменив относительные пути к файлам на абсолютные пути к файлам, скрипт смог создавать и изменять файлы и каталоги.

Я оставлю это здесь на случай, если у кого-то возникнет похожая проблема.

0
ответ дан 12 November 2020 в 09:13

Теги

Похожие вопросы