He escrito un script de Rake que debería ejecutarse automáticamente con Crontab. La secuencia de comandos funciona bien cuando se escribe en la línea de comandos, pero no se puede ejecutar correctamente dentro del cron.El script de My Shell que inicia Rake no se ejecuta correctamente cuando se inicia a través de cron
El guión se parece a esto:
#!/bin/sh
echo `date`
cd /home/mick/myapp/current
rake RAILS_ENV=production mynamespace:myaction
La configuración crontab se ve así:
10 0,6,12,18 * * * /home/mick/work/launch.sh >> /home/mick/work/launch.log
Después de la ejecución, el archivo de registro solo contiene la fecha, pero nada más, y el error me sale en el registro del sistema se parece a esto:
Mar 18 18:10:01 CRON[21773]: (mick) CMD (/home/mick/work/launch.sh >> /home/mick/work/launch.log)
Mar 18 18:10:01 CRON[21772]: (CRON) error (grandchild #21773 failed with exit status 127)
Mar 18 18:10:01 postfix/sendmail[21776]: fatal: open /etc/postfix/main.cf: No such file or directory
Mar 18 18:10:01 CRON[21772]: (mick) MAIL (mailed 1 byte of output; but got status 0x004b, #012)
EDITAR:
Gracias al comentario de @Holger Just, he encontrado this link que me ayudó a obtener un script en funcionamiento.
Aquí está la versión actualizada de mi guión
#!/usr/bin/env bash # UPDATED TO GET ACCESS TO 'source'
export PATH=blabla # NOT SURE THIS HELPED AS IT WAS MY FIRST MODIF AND DIDN'T FIX
source /home/mick/.rvm/environments/default # LOADING RVM TO MAKE THINGS WORK
echo `date`
cd /home/mick/myapp/current
rake RAILS_ENV=production mynamespace:myaction
Incluso todas las cosas del entorno agregadas al script aquí no corrigieron un problema similar al que tenía, pero lo hizo un simple/excesivo "origen ~/.bash_profile". – David