Por que esse cronjob não está funcionando?

2

Eu tenho um script ruby em ~/custom_scripts/get_all_products.rb .

Eu quero que ele seja executado todas as noites às 04:00.

Veja como o cronjob em crontab -e se parece:

MAILTO="<email>"
0 4 * * * ruby ~/custom_scripts/get_all_products.rb

Mas não está sendo executado.

O que devo tentar em seguida?

    
por narzero 08.09.2014 / 00:59

2 respostas

3

Eu tive problemas com o uso de expansão de til em crontabs no passado (isso pode ter sido em um sabor Unix diferente do Linux). Ainda assim, sugiro usar $HOME em vez de ~ .

Além disso, é melhor especificar um caminho completo para o executável ruby . O PATH usado pelo cron geralmente não é o que você definiu em seu ambiente interativo (por exemplo, no meu sistema, o cron PATH é apenas /usr/bin:/bin ).

    
por 08.09.2014 / 04:05
2

Acho que pode haver dois problemas que você precisa resolver:

  1. ~ é um sinônimo de shell para $HOME . Você deveria usar isso em algo como cron
  2. $HOME pode não ser definido como correto para seu comando. Por padrão, crontab -e está editando o crontab do root. Não é um dos seus usuários. Substitua apenas ~ e $HOME pelo caminho absoluto.
por 08.09.2014 / 10:18