Me estoy ejecutando en un par de distribuciones de Linux diferentes (Fedora 11, CentOS 5 y SuSE 10.2) y a menudo me encuentro con un problema en el que un nuevo script que quiero ejecutar como trabajo cron funciona bien cuando se llama directamente desde la línea de comandos, pero falla cuando se llama desde cron debido a ligeras variaciones en la RUTA u otras variables de entorno requeridas.
¿Hay alguna manera de probar ejecutar un script individual como si se ejecutara desde cron, sin tener que ejecutar todo el crontab o usar run-parts para ejecutar todo el directorio cron.daily / .hourly, etc.? Supongo que podría editar temporalmente mi crontab para ejecutar el script en los próximos minutos, pero prefiero tener una solución más independiente para no arriesgarme a estropear el crontab.
Si estoy ejecutando un trabajo cron programado individualmente (una línea separada en crontab) lo programaré para cada minuto o cada dos minutos mientras lo estoy probando. Una vez que se haya probado, editaré la línea crontab para que se ejecute en la frecuencia que deseo.
Como nota al margen, si quiero probar que el cron en sí mismo funciona correctamente y enviar los resultados por correo electrónico a la dirección correcta (MUY importante), agregaré la siguiente línea a mi / etc / crontab:
Se ejecuta cada minuto e intenta hacer un
ls
en un directorio que no existe. Debería enviar un mensaje de error por correo electrónico cada minuto. Comento la línea cuando la tengo funcionando.Volviendo a su pregunta: Probablemente no desee modificar el trabajo cron existente para que se ejecute con frecuencia, tanto porque existe la posibilidad de olvidarse de volver a cambiarlo como porque ejecuta cron.hourly, cron.daily o cron. podría tener efectos secundarios, dependiendo de lo que tenga allí. Para asegurarte de que estás ejecutando el script en el mismo entorno en el que estará cuando lo llames desde cron, te recomiendo modificar mi truco "ls" anterior:
Agregue una línea a su crontab para ejecutar el script directamente:
De esa manera, puede ejecutarlo con la frecuencia que necesite para probarlo.
fuente
No conozco una solución más directa, pero podría crear un usuario (digamos, crontest) con privs para su script, y usar el crontab específico del usuario para que el usuario 'crontest' pruebe el script (s) editando para que el script se ejecute en los próximos minutos.
fuente