Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

problemas con crontab

28 views
Skip to first unread message

Fernando Romero

unread,
Jan 4, 2021, 5:10:04 PM1/4/21
to
Hola como estan.
Estoy usando Debian 10 y tengo problemas con el horario en crontab, estoy corriendo un php con curl a cierto horario, pero siempre se ejecuta 4 minutos mas tarde, es como que crontab no toma la hora del servidor y esta usando un horario propio.
A alguien le paso esto?

Saludos

Camaleón

unread,
Jan 5, 2021, 2:20:03 AM1/5/21
to
¿Sólo te pasa el desfase de 4 minutos con esa rutina?

Prueba a crear otra que ejecute alguna orden sencilla, de bash, para
ver si sucede lo mismo.

El desfase es muy corto como para pensar en un problema con el ajuste
de la hora (supongo que tendrás el sistema sincronizado con un servidor
NTP) o que se trate de una mala configuración de la zona horaria (el
desfase sería de medias horas u horas).

Sólo un apunte: una cosa es la hora a la que se ejecuta la rutina (que
debe ser exactamente a la que la has programado en el crontab) y otra
cosa es lo que haga esa rutina y cuándo lo ejecute, que se puede
demorar dependiendo de lo que tenga que ejecutar (si es php+curl me
suena a que debe haber un servidor web de por medio que lleve su
propio registro/configuración horaria).

Saludos,

--
Camaleón

Fernando Romero

unread,
Jan 5, 2021, 7:50:05 AM1/5/21
to
Si, me pasa solo con ese curl que corro en el crontab, no con otras programaciones que tengo corriendo en el mismo crontab.
El curl ejecuta un php de un servidor web que está corriendo en el mismo servidor donde esta el crontab.

Saludos

Camaleón

unread,
Jan 5, 2021, 12:10:04 PM1/5/21
to
El 2021-01-05 a las 09:45 -0300, Fernando Romero escribió:

> El mar, 5 ene 2021 a las 4:16, Camaleón (<noel...@gmail.com>) escribió:
> >
> > > Estoy usando Debian 10 y tengo problemas con el horario en crontab, estoy
> > > corriendo un php con curl a cierto horario, pero siempre se ejecuta 4
> > > minutos mas tarde, es como que crontab no toma la hora del servidor y
> > esta
> > > usando un horario propio.
> > > A alguien le paso esto?
> >
> > ¿Sólo te pasa el desfase de 4 minutos con esa rutina?

(...)

> Si, me pasa solo con ese curl que corro en el crontab, no con otras
> programaciones que tengo corriendo en el mismo crontab.
> El curl ejecuta un php de un servidor web que está corriendo en el mismo
> servidor donde esta el crontab.

¿Y cómo sabes que se ejecuta 4 minutos más tarde de la hora definida en
el crontab? Es decir, ¿qué has revisado para comprobarlo?

Mejor si mandas a la lista el contenido del crontab y el registro de la
ejecución de la rutina para ver qué puede estar pasando, pero en
principio me inclino por que la rutina se ejecuta a su hora y es el
resultado de lo ejecutado lo que se genera con ese desfase temporal.

Saludos,

--
Camaleón

Fernando Romero

unread,
Jan 5, 2021, 12:20:03 PM1/5/21
to
Mire en la hora que había puesto en el crontab y no se ejecuto mire en el log del crontab y no habia nada y a los 4 minutos se ejecuto y lo mostro el log del crontab lo probe varias veces.
Lo corri 4 minutos y listo por mas que busque no encontre nada.

Saludos

Camaleón

unread,
Jan 5, 2021, 12:40:04 PM1/5/21
to
El 2021-01-05 a las 14:10 -0300, Fernando Romero escribió:

> El mar, 5 ene 2021 a las 14:04, Camaleón (<noel...@gmail.com>) escribió:
> > > >
> > > > > Estoy usando Debian 10 y tengo problemas con el horario en crontab,
> > estoy
> > > > > corriendo un php con curl a cierto horario, pero siempre se ejecuta 4
> > > > > minutos mas tarde, es como que crontab no toma la hora del servidor y
> > > > esta
> > > > > usando un horario propio.
> > > > > A alguien le paso esto?
> > > >
> > > > ¿Sólo te pasa el desfase de 4 minutos con esa rutina?
> >
> > (...)
> >
> > > Si, me pasa solo con ese curl que corro en el crontab, no con otras
> > > programaciones que tengo corriendo en el mismo crontab.
> > > El curl ejecuta un php de un servidor web que está corriendo en el mismo
> > > servidor donde esta el crontab.
> >
> > ¿Y cómo sabes que se ejecuta 4 minutos más tarde de la hora definida en
> > el crontab? Es decir, ¿qué has revisado para comprobarlo?

(...)

> Mire en la hora que había puesto en el crontab y no se ejecuto mire en el
> log del crontab y no habia nada y a los 4 minutos se ejecuto y lo mostro el
> log del crontab lo probe varias veces.
> Lo corri 4 minutos y listo por mas que busque no encontre nada.

Mejor si mandas a la lista el contenido del crontab, del script que
ejecuta y del registro de cron, a ver si cazamos la causa del retardo
de esos 4 minutos.

Saludos,

--
Camaleón

Matias Mucciolo

unread,
Jan 5, 2021, 12:50:03 PM1/5/21
to
lo mas facil en estos casos es poner lineas de debug
ejemplo del script a ejecutar:

#!/bin/bash

echo -n "start cronjob: " > /tmp/temp.debug.job
date >> /tmp/temp.debug.job

echo -n "running command at: " >> /tmp/temp.debug.job
date >> /tmp/temp.debug.job

curl bla-bla-bla

echo "finish at: " >> /tmp/temp.debug.job
date >> /tmp/temp.debug.job

esto es un simple ejemplo para que te des una idea de lo que hablo.

saludos

Fernando Romero

unread,
Jan 5, 2021, 1:20:04 PM1/5/21
to
Este es el crontab
1 1 * * *       rm -rf /var/www/html/site/html2image/uploads/*.png
21 8 * * *       curl https://site.com/pone_en_cero.php
21 18 * * *       curl https://site.com/pone_en_cero.php?a_la_tarde=1

Saludos

miguel angel gonzalez

unread,
Jan 6, 2021, 5:20:04 AM1/6/21
to
Hola,

Por descartar, si la programación de los crontab funcionan bien menos esas dos tareas,
¿has probado a ejecutar esos curl sin crontab? Además, probaría las líneas de debug que comentan,
para descartar problemas de sintaxis en los comandos etc, si tienes ese retardo de 4 minutos a lo mejor ves en qué parte se retrasa.
Otra opción que probaría es a redirigir la salida de errores del cron a un fichero, algo así:

21 8 * * *       curl https://site.com/pone_en_cero.php 2> errores.log

Un saludo.
--
/m.a.

Fernando Romero

unread,
Jan 6, 2021, 3:20:03 PM1/6/21
to
Gracias Miguel voy a seguir tu consejo para ver si encuentro algo.

Saludos 

Claudio

unread,
Jan 7, 2021, 7:00:05 AM1/7/21
to
Buen día lista,

Si es como entiendo y el crontab se encuentra en el mismo servidor
donde se está ejecutando el servicios de publicación del sitio web, en
vez de utilizar curl se puede intentar ejecutar directamente el
archivo *.php desde el crontab haciendo uso del comando php. Por
ejemplo publicar dentro del crontab una línea con un comando del tipo:

php /var/www/http/scripts/scriptejemplo.php
en lugar de
curl http://servidor/scripts/scriptejemplo.php

De esta manera se puede descartar algún problema en el servicio http y
por otro lado al ejecutarlo directamente con el comando php no sería
necesario tener un servicio web publicado evitando por ejemplo que
alguien desde fuera del equipo ejecute el script navegando en esa
dirección, esto si es que el servicio está publicado fuera de la red
lan. Me refiero a que el script podría estar en un directorio
cualquiera no necesariamente publicado en la web, como por ejemplo:

php /home/miusuario/scripts/scriptejemplo.php

Espero que sea de utilidad.

¡Saludos!


El mar, 5 ene 2021 a las 9:45, Fernando Romero
(<ffrcar...@gmail.com>) escribió:
>
>
>
0 new messages