PYTHONPATH problema no cron

0

Eu tenho tentado executar automaticamente um script Python com o cron para entender o PATH.

Primeiro eu tento com o usuário crontab:

crontab -e

Eu configurei o crontab assim:

PYTHONPATH=/home/dpa/anaconda3/bin/python
PATH=/home/dpa/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
36 15 * * * python /home/dpa/PycharmProjects/Parser/Parser.py >> /tmp/mycommand.log 2>&1

O script não é executado e recebo o seguinte erro:

/bin/sh: 1: python: not found

Então eu tento como superusuário:

sudo crontab -e

e eu configurei o cronetab assim:

PYTHONPATH=/home/dpa/anaconda3/bin
PATH=/home/dpa/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin 
43 15 * * * su - dpa python /home/dpa/PycharmProjects/Parser/Parser.py >> /tmp/mycommand.log 2>&1

Agora, o STDERR é assim:

-su: python: No such file or directory
    
por Program 18.06.2018 / 15:53

1 resposta

0

Para começar, como você tem root access, recomendo que você compile e crie anaconda em /opt e não em seu diretório pessoal.

O que você está efetivamente fazendo é definir a variável PATH como sendo igual a essa lista de diretórios e PYTHONPATH como sendo igual àquele diretório onde os anaconda executáveis estão causando o seu problema.

Para obter o que você deseja, uma maneira melhor é tornar-se root e, supondo que seu shell seja bash :

export PATH=/home/dpa/anaconda3/bin:$PATH
export LD_LIBRARY_PATH=/home/dpa/anaconda3/lib
export PYTHONHOME=/home/dpa/anaconda3
bash

Isso define o caminho e a biblioteca para procurar nos diretórios que contêm o anaconda python e suas bibliotecas e bash inicia uma nova sessão. Você pode adicionar o comando python a crontab .

Se você for executá-lo como root , não precisará do su - e também será melhor executá-lo no crontab de root do jeito que você o tem, PYTHONPATH e PYTHONHOME estão definidos no ambiente do usuário e não no root .

Se for melhor, você pode colocar tudo em um script e adicionar o próprio script em crontab .

Mais uma vez, recomendo instalar o anaconda em /opt e não no diretório pessoal do usuário.

    
por 18.06.2018 / 17:00