Cómo probar si funcionan los «cron jobs » fácil y rápido

A veces estamos en un entorno GNU/Linux y necesitamos saber si realmente cron está funcionando o no. A mi me pasó el otro día, y hoy te explico la forma más fácil y rápida de hacerlo ¿Lo vemos?

Antes que nada, comentarte que este tutorial está pensado para distribuciones basadas en Red Hat, como pueden ser CentOS, Fedora, Amazon EC2, Suse y OpenSuse etc. Sin embargo, puede servir también en otro tipo de distribuciones. Espero que te sirva con la que estés utilizando en el momento de haber llegado hasta aquí. Puedes preguntarme dudas en los comentarios.

¿Cron está ejecutándose?

Lo primero es empezar por lo básico. Si cron te está dando problemas igual es simplemente porque el proceso no se está ejecutando en el sistema. Desde consola, ejecuta el siguiente comando:

ps ax | grep cron

Lo que hace este comando es mostrarnos por pantalla los procesos en ejecución que se están ejecutando, cuyo nombre contenga «cron». Típicamente el que buscamos se llama «crond», pero esto puede variar en versiones y sabores.

Si no se está ejecutando, puedes probar a ponerlo en marcha manualmente con algo como:

sudo service crond start

OJO este comando puede variar de una distribución a otra. Si ya estás como root, no hace falta el sudo.

En función de si se ejecuta bien o te da algún error de por qué no inicia el servicio, te va a dar pistas sobre qué puede estar mal con los cron jobs. ¿Quizás no está instalado el paquete? ¿Está dañado? ¿Hay algún otro problema? Y a partir de ahí sigues investigando.

¿Cron ejecuta órdenes correctamente?

Vale, imaginemos que con el paso anterior todo parece ir bien. ¿Por qué entonces cron no está haciendo lo que quieres que haga? Una forma rápida de comprobar si cron está ejecutando las órdenes programadas es crear una orden sencilla y fácil de comprobar. Te pondré un ejemplo:

Para abrir las tareas de cron, escribe en consola:

EDITOR=nano crontab -e

Esto abrirá las órdenes de cron con Nano, mi editor de consola favorito. Una vez dentro, añade la siguiente línea:

* * * * * /bin/echo "MIAU" >> /RUTA/NOMBRE.txt 

Esa orden te va a añadir cada minuto la palabra «MIAU» a un archivo .txt que va a estar en una RUTA, y que tendrá un NOMBRE concreto que tú le pongas, no olvides editar la RUTA para que el archivo esté en un lugar accesible.

Una vez hecho esto, lo guardas y esperas un minuto. Pasado ese tiempo, deberías tener un archivo con uno o varios MIAU (según el tiempo que hayas esperado) en la ruta especificada. Si no existe, entonces cron no está ejecutando las órdenes y te toca averiguar por qué. Yo reiniciaría el proceso, y si el problema persiste hacer lo mismo con el sistema. Si aún así no va, reinstala el paquete.

Registro de errores y depuración

También puede ser útil saber dónde se guardan los registros de errores, por si te dan una pista de lo que puede estar pasando. Concretamente te interesan los logs de:

/var/log/cron

y

/var/log/messages

Además, para depurar mediante registros de errores qué está pasando, conviene que a las órdenes cron les incluyas algo al final, como te enseño en el ejemplo:

* * * * * /bin/echo "MIAU" >> /RUTA/NOMBRE.txt  2>&1

Otras comprobaciones

Imaginemos que lo de los «MIAU» funciona pero lo demás no. ¿Qué está pasando? Pues que probablemente el problema no sea de cron, sino del comando en si.

A mi me pasó, por ejemplo, con un comando «curl» del cron de un cliente. Al final el problema no era de cron sino del propio comando curl. Te cuento cómo lo resolví en este otro post.

¿Cómo llegué a esa conclusión? De la misma forma que puedes hacerlo tú, copia la orden cron en si, y pégala directamente en la consola ¿Qué hace? ¿La ejecuta? ¿Da un error? A mi me daba ese error en cuestión. Fácil, si sabes dónde buscar.


Espero que te haya servido este breve tutorial, si ha sido así, házmelo saber en los comentarios. También puedes preguntarme cualquier duda, por si puedo echarte una mano para resolverlo.

1 comentario en “Cómo probar si funcionan los «cron jobs » fácil y rápido”

  1. Pingback: Cómo probar si funcionan los “cron jobs ” fácil y rápido - De Robots Online

Los comentarios están cerrados.