Como usar o alias .profile em crontab [duplicado]

1

Li as respostas para essa pergunta, mas ainda não entendi o que fazer:

Como usar meus aliases no meu crontab?

Estou logado no meu servidor Ubuntu como root . Eu tenho o seguinte comando no meu .profile :

alias test-alias="echo test"

Eu tenho o seguinte comando no meu arquivo crontab:

11 9 * * *      source /root/.profile; test-alias > /root/tmp.output 2>&1

Quando este comando é executado, a única saída presente em tmp.output é:

/bin/sh: 1: test-alias: not found

O que estou fazendo de errado aqui? Como posso usar meu test-alias no meu arquivo crontab ? Eu quero usar o alias diretamente no comando, eu não quero criar scripts adicionais para executar o alias.

    
por flyingL123 05.02.2015 / 15:14

1 resposta

1

Embora não seja a solução mais bonita e, embora eu sugira que você não a use, o que você pode fazer é:

11 9 * * *      bash -ic "test-alias > /root/tmp.output 2>&1"

Isso executará o bash como shell interativo (-i) e, portanto, lerá o bashrc. Para certificar-se de que o .profile é originado, você precisa ter este bloco em seu .bashrc:

[ -f ~/.profile ] && source ~/.profile

Observe que esse tipo de tarefa do cron em execução ou de scripts de escrita é uma prática muito ruim, e você deve tentar evitá-la.

    
por 05.02.2015 / 15:35

Tags