“/ usr / bin / env bash” não é encontrado ao executar a partir de um script cron

0

Eu tenho isso no meu crontab:

PATH=/usr/bin:/usr/local/bin:$PATH
*/1 * * * * /usr/bin/env bash > ~/cron.log 2>&1

A saída em cron.log é a seguinte:

/usr/bin/env bash: No such file or directory

/usr/bin/env , bem como /bin/bash , existem. E eu também posso executar este comando do mesmo usuário para quem este crontab pertence sem nenhum erro. Eu também tentei adicionar

SHELL=/bin/bash

para o topo do crontab. Sem efeito. Não tenha a menor ideia do que está acontecendo. Também isto:

*/1 * * * * which bash > ~/cron.log 2>&1

não mostra nada no arquivo de log. Isso é tudo que eu tenho no meu crontab para esse usuário, nada mais.

    
por snitko 15.02.2013 / 01:40

3 respostas

4

Como o seu script que cron é executado começa com #!/usr/bin/env bash ( certo? ), tudo que você precisa fazer no seu crontab é:

*/1 * * * * /path/to/script > ~/cron.log 2>&1

E certifique-se de que o script realmente produza algo; Se o seu script estiver completamente silencioso, seu arquivo de log estará vazio.

    
por 15.02.2013 / 03:13
1

Acontece que eu não deveria ter essa linha:

PATH=/usr/bin:/usr/local/bin:$PATH

A remoção do crontab resolveu o problema.

    
por 15.02.2013 / 02:10
-3

Não sei exatamente o que você está tentando fazer, mas para mim:

# which bash
/bin/bash

Então, tente

/usr/bin/env /bin/bash /path/to/some/script > ~/cron.log 2>&1
    
por 15.02.2013 / 01:47