PDA

Ver la Versión Completa : Programar crontab cada minuto



davitcito
23-mar-2015, 17:59
Buenos días, tengo una consulta, ¿es posible programar un cron que empieze y acabe a determinada hora, y se ejecute minuto a minuto?
Es decir, yo tengo la siguiente línea en el cron:
* 9-18 * * 1-5 /usr/bin/monitoreo.sh

Pero yo no quiero que empieze a las 09:00 am, sino a las 09:30 am.
¿Es posible?
Saludos.

victorhck
23-mar-2015, 20:39
Hola!

Como eres nuevo pasa por la sección de presentaciones y no olvides leer las normas.

Sobre tareas en Cron ni idea... Se me ocurre meterle un sleep de 30minutos al inicio del script... un poco chapu, quizas??

Si utilizas KDE echa un vistazo a este artículo, es para Arch, pero quizás en openSUSE también puedas utilizarlo:
http://blog.desdelinux.net/usar-planificador-tareas-kde-archlinux/

Saludos.

davitcito
23-mar-2015, 21:07
Hola!

Como eres nuevo pasa por la sección de presentaciones y no olvides leer las normas.

Sobre tareas en Cron ni idea... Se me ocurre meterle un sleep de 30minutos al inicio del script... un poco chapu, quizas??

Si utilizas KDE echa un vistazo a este artículo, es para Arch, pero quizás en openSUSE también puedas utilizarlo:
http://blog.desdelinux.net/usar-planificador-tareas-kde-archlinux/

Saludos.

Gracias, y disculpas por la omisión inicial.

Revisaré el tutorial. Saludos.

DiabloRojo
24-mar-2015, 09:41
crontab es muy potente, por Internet hay muchos ejemplos en español, uno que he visto que te puede valer es este: http://blog.desdelinux.net/cron-crontab-explicados/ y este otro: http://www.linuxtotal.com.mx/?cont=info_admon_006

Me gusta la guía del enlace que ha puesto victorhck.

jncruces
24-mar-2015, 18:14
Puedes crear un script que se ejecute cada minuto. En dicho script comprobar la hora y si la hora coincide con el rango que quieres ejecutas dicho monitoreo.sh sino pues sales sin hacer nada.

Aquí tienes info:
http://linuxcommand.org/writing_shell_scripts.php

Otra opción es crear una linea en crontab por cada hora, algo tipo:

*/60 9 * * * * monitoreo.sh




# +---------------- minute (0 - 59)
# | +------------- hour (0 - 23)
# | | +---------- day of month (1 - 31)
# | | | +------- month (1 - 12)
# | | | | +---- day of week (0 - 6) (Sunday=0)
# | | | | |
* * * * * command to be executed

victorhck
24-mar-2015, 20:36
¿y el sleep de 30 minutos al inicio del script no vale??

davitcito
24-mar-2015, 20:41
Algo pasa que no me deja agregar una respuesta, pero ya encontré la solución, gracias!

victorhck
24-mar-2015, 23:43
Algo pasa que no me deja agregar una respuesta, pero ya encontré la solución, gracias!

Me alegro si encontraste la solución, pero...
Un foro sirve para pedir ayuda y ofrecerla. Tu has pedido ayuda, y varios usuarios de manera desinteresada han tratado de ayudarte.
Si tu has conseguido dar con la solución, lo justo y correcto, sería que compartieras con todos esa solución. :molesto:
De esa manera agradeces en cierta manera la ayuda de los usuarios, y a la vez tu respuesta puede servir para otro usuario con un problema similar.

davitcito
24-mar-2015, 23:58
Me alegro si encontraste la solución, pero...
Un foro sirve para pedir ayuda y ofrecerla. Tu has pedido ayuda, y varios usuarios de manera desinteresada han tratado de ayudarte.
Si tu has conseguido dar con la solución, lo justo y correcto, sería que compartieras con todos esa solución. :molesto:
De esa manera agradeces en cierta manera la ayuda de los usuarios, y a la vez tu respuesta puede servir para otro usuario con un problema similar.
Por supuesto, tienes toda la razón, pero por algún motivo desconocido no me dejaba postear lo siguiente:
Bueno, al final logré dar con una solución, la que sería agregar dos líneas más al crontab para cubrir los minutos faltantes, es decir:
30-59 9 * * 1-5 /usr/bin/monitoreo.sh
1-30 17 * * 1-5 /usr/bin/monitoreo.sh

Slds!

juansan
29-abr-2019, 19:27
Hola, seguro que es tarde pero siempre está bien exponer las ideas por si alguien tiene el mismo problema.

A mi me ha ocurrido algo parecido y lo que he hecho es crear dos líneas en el crontab. En este caso uno para que ejecute el comando desde las 9:30 en adelante y otro desde las 10 hasta las 18.

1-30 17 * * 1-5 comando
30-59 9 * * 1-5 comando

En mi caso particular me ha funcionado ;)

MartaDiaz
28-may-2019, 14:35
He probado y no me funciona @juansan ¿sabes qué puedo estar haciendo mal? :(

DiabloRojo
28-may-2019, 16:20
Bienvenido al foro @MartaDiaz, vemos que es tu 1er. mensaje en el foro. Estamos encantados de que te hayas dado de alta, como queremos ayudarte en tu desempeño en el foro tenemos unas normas del foro donde aprenderás cosas útiles como aportar datos, hacer preguntas, como buscar, etc... Es como una guía o navaja suiza para los novatos. Para evitarte futuros problemas en el foro fíjate lo que dice resaltado y en negrita la norma 5 sobre el objetivo primordial del foro y, sobre todo, la norma 7 de escribir claro y nítido para entendernos.


He probado y no me funciona @juansan ¿sabes qué puedo estar haciendo mal? :(Da mas información de lo que quieres hacer y estas haciendo.

Como eres nuevo, preséntate en la sección de Presentaciones y si tienes tiempo libre, acuérdate de leer las normas.

juansan
01-ago-2019, 10:58
He probado y no me funciona @juansan ¿sabes qué puedo estar haciendo mal? :(

Hola Marta,
Lo que he hecho es simplemente ejecutar el comando por horas, poniendo dos lineas en el crontab:
0-30 17 * * 1-5 comando
30-59 9 * * 1-5 comando

La primera línea dice que se ejecute de 9:30 a 9:59 y la otra para que se ejecute de 17 a 17:30. A lo mejor no me expliqué bien ;)

Un saludo.