1

Уже потратил более 1 часа, чтобы сделать это легко и полностью провалилось:/

Не могу найти, почему этот python не работает на crontab, хотя он отлично работает в командной строке ...

Сценарий (Баш):

#!/bin/bash

touch before_zzz_text.txt # to check if cron works at all 
ls > "before_zzz_text.txt" # just to check if I'm in the correct directory

/root/anaconda3/bin/python -V > pv.txt # this is empty! or a white char

touch after_zzz_text.txt # this works new file every minute

Таким образом, я знаю, что он работает в cron (файлы .txt оба создаются каждую минуту - как cron запускается каждую минуту).

Однако pv.txt пуст ... так выглядит сценарий bash не работает?

В конце я хочу, чтобы в bash-скрипте запускался более сложный скрипт, но я попытался выяснить, почему он не работает, поэтому теперь его проще упростить "/root/anaconda3/bin/python -V '

1 ответ1

3

После небольшого обсуждения (см. Комментарии выше) кажется, что основная проблема заключается в том, что python записывает текст своей версии в stderr , а не в ожидаемый stdout , где ничего не написано, следовательно, пустой файл.

В целом, при диагностике проблем crontab рекомендуется регистрировать ошибки, а также выводить их в тот же или другой файл. Добавив 2>&1 в конец строки вызова python , текст версии появился в pv.txt:

/root/anaconda3/bin/python -V > pv.txt 2>&1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .