루프 매개변수를 사용하여 cron 작업을 실행하는 방법은 무엇입니까?

루프 매개변수를 사용하여 cron 작업을 실행하는 방법은 무엇입니까?

5분마다 bash 스크립트를 실행하고 기간을 기준으로 사전 정의된 매개변수를 사용하고 싶습니다.

예를 들어 1, 2, 5, 10, 15, 50, 15, 10, 5, 2를 매개변수로 사용한 다음 루프를 다시 시작하고 싶습니다.

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

어떻게 해야 하나요?


스크립트, 배열 및 .을 사용하여 이 작업을 수행할 수 있지만 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하고 원하는 크론 일정을 사용할 수 있습니다.

관련 정보