Variáveis ​​em crontab?

Como posso armazenar variables ​​no meu crontab? Eu percebo que não é shell mas dizer que eu quero ter algumas constantes como um caminho para o meu aplicativo ou algo assim?

Pensamentos?

No Vixie cron, que é possivelmente o mais comum, você pode fazer isso quase exatamente como um script de 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 ao redor do sinal de igual (=) são opcionais e quaisquer espaços não principais subsequentes no 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. A string de nome também pode ser colocada 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 shell script e executar o script a partir do cron. Na verdade, isso é bom para qualquer coisa complicada.

Você pode colocar variables ​​de ambiente no crontab. Veja a página de manual do crontab(5) para mais detalhes.

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

Eu não sou muito de um cara unix, então eu não posso dizer nada definitivo, mas isso soa como um bom lugar para um passo pré-processador.

 #define cmdpath /usr/bin/myfolder/cmd 0,30 8-17 * * 1-5 cmdpath 17 3 * * 1 cmdpath 

executando isso através do pré-processador do meu compilador c ++ fornece:

 0,30 8-17 * * 1-5 /usr/bin/myfolder/cmd 17 3 * * 1 /usr/bin/myfolder/cmd 

O que parece ser exatamente o que você queria.