meeshanya
@meeshanya
кодокот

Как записать файл в python при запуске через cron?

Программа на python3 в которой есть такие строки:
python3
with open('log.txt', 'a') as f:
    f.write(date.strftime('%d-%m-%Y %X') +  ' some text')
    f.close()

Записывает в файл то, что требуется когда я запускаю ее ручками, но когда она выполняется по расписанию cron, ничего не записывается
У файла log.txt атрибуты -rw-rw-rw-
  • Вопрос задан
  • 222 просмотра
Решения вопроса 4
@pfg21
ex-турист
изучи из-под какого юзера крон запускает команду и в какой директории (она по умолчанию это не твой ~)
на будущее приучись писать полные пути для всех файлов и твои волосы будут мягкими и шелковистыми :)
Ответ написан
fzfx
@fzfx
18,5 дм
укажите абсолютный, а не относительный путь к файлу.
Ответ написан
Комментировать
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Практически никогда кроном не пользовался, но вот так работает:
* * * * * /usr/bin/python3 /home/sergey/main.py
Каждую минуту в файл log.txt (в директории пользователя) добавляется запись.
Ответ написан
Комментировать
@res2001
Developer, ex-admin
Вы указываете имя файла без пути, значит ОС ищет файл в текущем рабочем каталоге. Когда вы запускаете скрипт в консоли, вы вероятно как раз находитесь в этом каталоге и у вас все работает. Когда запускает скрипт cron текущим каталогом является ... какой-то каталог, удобный крону по каким-то его кроновым причинам.
Так что правильный выход - указывать полный путь к файлу - просто передавайте полный путь к файлу в параметре запуска скрипта и
твои волосы будут мягкими и шелковистыми
.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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