Estou tentando obter um script ruby para ser executado via cron. O cron job é assim:
* * * * * /usr/local/rvm/rubies/ruby-2.0.0-p353/bin/ruby /usr/share/adafruit/webide/repositories/shed_watcher/lib/shed_watcher.rb >> /tmp/cron_shed_watcher.log 2>&1
Encontrei alguns problemas. A primeira é que o cron do ambiente é executado e pode encontrar uma das gemas necessárias:
require "rest_client"
Isso foi resolvido configurando o GEM_PATH
no crontab:
GEM_PATH=/usr/local/rvm/gems/ruby-2.0.0-p353:/usr/local/rvm/gems/ruby-2.0.0-p353@global
O segundo problema é que o script, executado em Occidentals em um Raspberry Pi, faz uso de uma sonda de temperatura e precisa chamar:
'modprobe w1-gpio'
'modprobe w1-therm'
i.e. modprobe
comandos nos backticks. O Cron não pode executar isso, em vez disso, recebo uma mensagem "operação não permitida". modprobe
é encontrado em /sbin
, então adicionei uma entrada de caminho ao meu crontab:
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin/usr/local/rvm/gems/ruby-2.0.0-p353/bin:/usr/local/rvm/gems/ruby-2.0.0-p353@global/bin:....
Mas recebo o mesmo erro (não é surpreendente como foi uma mensagem "não permitida", não uma mensagem "não encontrada"). O que preciso fazer para que isso funcione?