at
tiene una interfaz más simple para este tipo de propósito si at
está instalado, la máquina está funcionando atd
y el usuario puede usar el comando.
Por ejemplo (verifique la sintaxis exacta usando man at
o info at
),
at -f
archivo now + 53 minutes
o
at -f
archivo now + 2 hours
ejecutará los comandos en el archivo especificado en 53 minutos o 2 horas, respectivamente.
at
luego se puede volver a ejecutar al comienzo del trabajo programado con unidades adecuadas de inicio, conteo y tiempo (aleatorio o de otro tipo).
Editar
Como Arjan señala útilmente a continuación, si está utilizando esto para otra aplicación que no sea un juguete, debe pensar en problemas como lo que sucede
si la próxima ejecución comienza antes de que termine la anterior (por ejemplo, ¿el script es reentrante?) o
si una ejecución no se completa correctamente o
si la próxima ejecución no se inicia a tiempo o a tiempo (por ejemplo, qué sucede si la máquina está apagada cuando la próxima ejecución debe comenzar) y
sobre el registro e informes de ejecuciones fallidas o exitosas.
file
contiene la próximaat
ejecución, ¿correcto?at
comando es la primera línea y si el script se ejecuta durante mucho tiempo (o si los intervalos son cortos), tenga cuidado de ejecutar varias instancias simultáneamente. Pero cuandoat
está en la última línea del guión, entonces obviamente no se volverá a programar si el guión falla. Además, ejecutar el script desde la línea de comandos hará que (re) se programe también (y: podrían existir múltiples programaciones simultáneamente). Ycron
admite el envío de cualquier error (o: salida en general) por correo electrónico; No sé siat
tiene algo así también?Tengo muchos comandos en / etc / crontab que hacen todo tipo de cosas y algunos necesitan precisión en segundos. Ahora cron puede tener una resolución más fina mientras mantiene todos los tiempos visibles y centralizados.
Este ejemplo obtiene y analiza una página web entre 10 y 50 segundos antes de cada 5 minutos:
No tiene que tener un tiempo exacto ya que los datos se mueven lentamente, pero ayuda a mantener el tiempo de ejecución del nodo munin lo más bajo posible al no tener que esperar a las páginas web. (El complemento almacena en caché la página durante 30 minutos para reducir las visitas innecesarias, pero necesita actualizar una base de datos cada 5 minutos).
Tenga en cuenta que \% - cron sustituye% por "\ n" - útil para mantener el texto del correo en una línea.
fuente
Internamente
cron
, no creo que tal característica exista. Creo que la mejor solución sería colocar su comando en un script de shell, y colocar unsleep
intervalo aleatorio en la parte superior del script y usar la$RANDOM
variable. Luego ejecute el script una vez al día en un trabajo cron regular.fuente
Dependerá de qué tipo de intervalo esté buscando. pero supongamos que desea que el script se ejecute al azar con una probabilidad de 1:30 (una vez cada 30 minutos)
Construya su secuencia de comandos cron para un peridiocity de, digamos 10 minutos. Se disparará 3 veces cada 30 minutos.
Dentro del script, use rand como condición para una instrucción if . Desea que rand devuelva un número entre 0 y 2. Si es 0, ejecute el contenido de la instrucción if.
Esencialmente, su script siempre se dispara a un intervalo establecido. Pero solo ejecutará el comando que le interesa al azar. Su proveedor de servicios se lo agradecerá.
fuente