¿Cómo hago un trabajo cron con argumento cíclico?

¿Cómo hago un trabajo cron con argumento cíclico?

Quiero ejecutar un script bash, digamos cada 5 minutos, con un argumento predefinido según un ciclo.

Por ejemplo, quiero usar como argumento 1, 2, 5, 10, 15, 50, 15, 10, 5, 2 y luego comenzar el ciclo nuevamente.

Lo ideal es que los argumentos se almacenen en un archivo o en el script donde pueda editarlos, agregar o eliminar algunos fácilmente, etc.

Cómo puedo hacer eso ?


Podría hacerlo con un solo script, un array y un while [[ true ]]pero me gustaría saber si puedo hacerlo con cron.

Respuesta1

Probablemente la forma más efectiva y una de las más simples de lograr esto sería hacer que el script maneje el seguimiento del ciclo del número mágico en lugar de usar argumentos. Algo como esto:

#!/bin/bash
sequence=(1 2 5 10 15 50 15 10 5 2)
if [[ -r /var/tmp/myjob.seq ]]; then
   seq="$(cat /var/tmp/myjob.seq)"
   if [[ $seq -lt $((${#sequence[@]}-1)) ]]; then
       nextseq=$(($seq+1))
   else
       nextseq=0
   fi
   echo $nextseq > /var/tmp/myjob.seq
else
   seq=0
   echo 1 > /var/tmp/myjob.seq
fi
magicnumber=${sequence[$seq]}

Luego puede consultarlo $magicnumbermás adelante en el script y utilizar el programa cron que desee.

información relacionada