Con el tiempo (y los años que llevo encima jejeje).. he ido olvidando cosas


| |||
Hola, Dado que piensas usar crontab, la tarea no resulta muy complicada. En la situación que describes, no es tan importante saber cuántas veces vas a ejecutar una tarea (puede ser 1, 2, 10, 1000 veces...) sino cuándo quieres que se ejecute. Como probablemente sabrás, la forma de programar tareas en un archivo crontab es mediante líneas que tienen una apariencia como esta:
Código:
Así que todo lo que tienes que hacer es definir estos valores de modo tal que representen una hora y fecha única. Así el comando que indiques se ejecutará una sola vez.minutos horas dia_del_mes mes dia_de_la_semana comando Por ejemplo, si quieres que se ejecute a las 3:00 pm del 20 de Julio de 2003, por decir cualquier cosa, tendrías que modificar tu archivo crontab (cosa que puedes hacer mediante `crontab -l') y agregar una línea como:
Código:
Espero que te ayude a recordar un poco... :) Saludos. 0 15 20 7 * /ruta/hacia/el/comando/ejecutable |
| ||||
Notable respuesta mi amigo, muchas gracias por ocupar tu tiempo (lamento decirte que ya sé todo eso). A ver, aplicando el ejemplo que tu me das, que pasará el año 2004 en esa misma fecha. Se perfectamente que puedo eliminar esa linea en mi crontab para que no se vuelva a ejecutar, pero yo quiero programar la tarea y luego olvidarme de ella, con la certeza que nunca mas se repetirá. gracias de nuevo ![]() |
| |||
Vaya, que interesante problema, no había caído en cuenta en eso. Creo que también es un poco curioso que una utilidad clásica de Unix como `cron' no incluya ese tipo de funcionalidad... no me parece muy acorde con el "espíritu Unix". Uno podría esperar que los crontabs permitieran programar la ejecución de comandos cada cierta cantidad de años también, si uno quisiera. Qué cosas... Pero bueno, reconsiderando el problema, y habiendo establecido que crontab no nos sirve en este caso, la solución debe estar por otra parte. Precisamente, y no sé si ya la conocías, hay una herramienta llamada `at'. Funciona en conjunto con el daemon `atd', y su propósito es similar al de cron, con la diferencia de que `at' programa tareas para ser ejecutadas una sola vez, a determinada hora, en determinada fecha. Si cuentas con esta herramienta en tu sistema, el modo de programar una tarea es simple. Hay un amplio rango de formas de especificar fechas y horas para programar las tareas con `at'. En el manual puedes leer sobre todas ellas. Una forma que me parece simple es usar un formato como por ejemplo "HH:MM DD.MM.YY":
Código:
(en ese ejemplo, para finalizar la entrada de comandos, pulsé Ctrl-D).$ at 13:36 18.07.03 warning: commands will be executed using /bin/sh at> /ruta/hacia/el/comando at> <EOT> job 1 at 2003-07-18 13:36 Bueno, espero que esta sea una solución válida de tu problema y ahora puedas descansar tranquilo en las noches... :) Saludos |