.
é um comando interno do shell. Verifique qual shell é usado pelo cron (por padrão, é / bin / sh).
A solução alternativa é criar um script de wrapper e colocar esses comandos dentro dele. Vai funcionar com certeza.
Eu uso cron há anos. Para carregar todas as variáveis do ambiente de uma vez, eu as defino em um arquivo dedicado (muitas vezes, mas não sempre .bashrc) que eu forneço no crontab:
* * * * * (. /home/me/my_environment_variables.sh; my_script.sh)
Infelizmente, este truque não funciona com o servidor chiado em Debian que recentemente me pediram para me mudar. Mais especificamente, tudo acontece como se o comando source fosse ignorado: my_script.sh é executado, mas com uma variável de ambiente vazia, para que os resultados do script não sejam os esperados. Eu realmente não entendo o problema. Tudo estava funcionando perfeitamente no meu ubuntu
O pacote cron instalado é "3.0pl1-124".
Tem alguma ideia de como resolver ou contornar este problema?
PS: Definir as variáveis ambientais dessa maneira parece funcionar:
* * * * * (export OPTOS_HOME=/home/me/src/optos; my_script.sh)
No entanto, definir mais de uma variável de ambiente dessa maneira não é conveniente.