
Ubicación: Inicio > Programación > Ruby > Configurar tareas CRON para Ruby
En esta guía explicamos un truco para configurar correctamente un comando Ruby para que se ejecute como tarea Cron.
Ejecutar un comando de Ruby como tarea CRON suele dar problemas, ya que el entorno del CRON no es el mismo que el de la shell. Por ejemplo, un comando concreto que ejecutas desde la sheel una vez accedido vía SSH puede funcionar, pero si lo configuras como una tarea CRON lo más probable es que no funcione.
Y no funciona porque al cron le falta cierta información sobre el entorno correcto para que ese comando funcione. Concretamente desconoce el valor de las variables de entorno GEM_PATH y GEM_HOME, necesarías para ejecutar la mayoría de comandos Ruby/Rails.
La forma más sencilla de pasarle esta información al cron es creando un script shell donde se definirá el entorno correcto y desde donde se ejecutará nuestro comando.
Por ejemplo, creamos el siguiente script al que llamaremos cron.sh y lo ubicaremos en la raíz de nuestra cuenta de hosting (en definitiva: /home/USUARIO/cron.sh ) :
#!/bin/sh export GEM_PATH="/home/USUARIO/ruby/gems:/usr/local/lib/ruby/gems/1.8" export GEM_HOME="/home/USUARIO/ruby/gems" /home/USUARIO/ruby/bin/comando exit 0
Para que este script se adapte a nuestra necesidades tenemos que modificar las líneas 2, 3 y 4. En las líneas 2 y 3 tenemos que reemplazar USUARIO por el nombre de usuario real de nuestra cuenta de hosting. En la línea 4 tenemos que escribir el comando completo que nos interesa ejecutar.
Una vez terminado el script tenemos que darle permisos de ejecución, por ejemplo:
chmod 755 /home/USUARIO/cron.sh
Por último, crearemos una tarea CRON en la cual ejecuteremos el script recien creado.
© Ekostat Informatica, S.L. - Aviso legal - Creditos - Mapa - ( XHTML y CSS correctos )