Как перенаправить весь вывод скрипта в файл?

Здравствуйте, написал скрипт, он должен периодически выполняться, прописал его в кроне, но вот есть проблема с выводом в файл

вот crontab
* * * * *   root python /home/root/main.py >> /home/root/app.log 2>&1


вот примерный скрипт
import logging

logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)

def main():
    pass

if __name__ == '__main__':
    logger.info('Run script...')
    main()


Если запускаю вручную
python /home/user/main.py >> /home/user/app.log 2>&1

то весь вывод со всеми логами оказывается в файле, а вот в когда выполняется в кроне, то файл остаётся пустым, скрипт 100% отрабатывает

UPD: если это конечно важно - всё это под докером запускается
  • Вопрос задан
  • 1264 просмотра
Пригласить эксперта
Ответы на вопрос 3
jcmvbkbc
@jcmvbkbc
http://dilbert.com/strip/1998-08-24
прописал его в кроне
* * * * * root

В /etc/crontab? Только в нём нужно указывать пользователя, в пользовательских crontab этого поля нет.

файл остаётся пустым, скрипт 100% отрабатывает

Вот прямо 100%? А что видно в /var/log/syslog?
Ответ написан
@Stqs
senior software developer
был еще такой случай в моей практике

по умолчанию крон юзает не bash а sh из-за чего можно наблюдать как одно и тоже работает в баше и не работает в кроне
происходит это потому что баш это вещь собственно юзерская а что б крон был posix совместимый он пользуется стандартным шел интерпретатором
Ответ написан
delvin-fil
@delvin-fil
Crazy Linux-admin
Вот непонятно, зачем без указания времени.
Четко указано:
# m h d m w user command
1 * * * * /bin/sh /path_you_script
И, разумеется, он должен иметь права на исполнение.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы