순환 인수를 사용하여 크론 작업을 어떻게 수행합니까?

순환 인수를 사용하여 크론 작업을 어떻게 수행합니까?

주기에 따라 미리 정의된 인수를 사용하여 5분마다 bash 스크립트를 실행하고 싶습니다.

예를 들어 1, 2, 5, 10, 15, 50, 15, 10, 5, 2를 인수로 사용한 다음 사이클을 다시 시작하고 싶습니다.

이상적으로 인수는 쉽게 편집하고 일부를 추가하거나 제거할 수 있는 파일이나 스크립트에 저장됩니다.

어떻게 해야 합니까?


단일 스크립트, 배열 및 a로 이를 수행할 수 있지만 while [[ true ]]cron으로 그렇게 할 수 있는지 알고 싶습니다.

답변1

아마도 이를 달성하는 가장 효과적이고 간단한 방법 중 하나는 인수를 사용하는 대신 스크립트 핸들이 매직 넘버 순환을 추적하도록 하는 것입니다. 이 같은:

#!/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]}

$magicnumber그런 다음 나중에 스크립트 를 참조하여 원하는 크론 일정을 사용할 수 있습니다.

관련 정보