ti-enxame.com

Variáveis ​​em crontab?

Como posso armazenar variáveis ​​no meu crontab? Eu percebo que não é a Shell, mas digo que quero ter algumas constantes como um caminho para o meu aplicativo ou algo assim?

Pensamentos?

46
JP Silvashy

No Vixie cron, que é possivelmente o mais comum, você pode fazer isso quase exatamente como um script Shell.

VARIABLE=value
PATH=/bin:/path/to/doathing
0 0 * * * doathing.sh $VARIABLE

A página man diz: 

Uma linha ativa em um crontab será uma configuração de ambiente ou um comando cron. Uma configuração de ambiente é da forma,

     name = value

onde os espaços em torno do sinal de igual (=) são opcionais e quaisquer espaços não principais subsequentes em valor farão parte do valor atribuído ao nome. A cadeia de valor pode ser colocada entre aspas (simples ou dupla, mas correspondente) para preservar os espaços em branco iniciais ou finais. O nome String também pode ser colocado em quote (single ou double, mas matching) para preservar espaços em branco iniciais ou finais.

Você pode dizer se você tem o Vixie cron verificando a página de manual para crontab; o autor será Paul Vixie. Crons diferentes podem ou não suportar isso (o cron do BusyBox, por exemplo, não suporta), neste caso, a melhor opção é colocar o comando em um script Shell e executar o script a partir do cron. Na verdade, isso é bom para qualquer coisa complicada.

77
mkb

Você pode colocar variáveis ​​de ambiente no crontab. Veja a man page para crontab(5) para mais detalhes.

2
Richard Fearn

Para manter meu crontab limpo, eu apenas chamaria um script Shell e faria as coisas divertidas no script.

0
Justaman