Eu não acho que você possa fazer isso diretamente no crontab. O arquivo crontab não é um script de shell, portanto, tentar fornecer um script contendo envvars para ele não funciona
. /path/to/envvars
o crontab não instala isso porque não é válido
crontab: installing new crontab
"/tmp/crontab.iZqWJX/crontab":1: bad minute
errors in crontab file, can't install.
O que você pode tentar é pesquisar um script contendo seus envios imediatamente antes de executar nosso trabalho
* * * * * . /path/to/envars ; /path/to/your/job
Eu testei isso com
* * * * * . /home/iain/envvars ; echo $HELLO >/tmp/test.out
com o arquivo envvars contendo
HELLO=fred
o arquivo /tmp/test.out continha o seguinte
fred
Então eu acho que funcionou. O comando source
(um sinônimo para .
) é um bash embutido, mas a origem não é posix, portanto, usar .
é o preferido.
help source
source: source filename [arguments]
Execute commands from a file in the current shell.
Read and execute commands from FILENAME in the current shell. The
entries in $PATH are used to find the directory containing FILENAME.
If any ARGUMENTS are supplied, they become the positional parameters
when FILENAME is executed.
Exit Status:
Returns the status of the last command executed in FILENAME; fails if
FILENAME cannot be read