cron 작업 실행을 예약하는 방법

cron 작업 실행을 예약하는 방법

금요일 오후 5시부터 월요일 오전 5시에 끝나는 crontab 스크립트를 매시간 실행하고 싶습니다.

스크립트는 해당 주 동안 완료되었는지, 현재 실행 중인지 확인합니다. 아니요/아니요인 경우 작업을 시작합니다.

머리로는 다음과 같은 일을 할 수 있다는 것을 알고 있습니다.

#Mins  Hours  DoMonth Months  DoWeek
0      5-17   *       *       0,6     /bin/echo "Run Script Sat and Sun Days"
0      17-24  *       *       0,5,6   /bin/echo "Run Script Fri, Sat, Sun Nights"
0      0-5    *       *       6,0,1   /bin/echo "Run Script Sat, Sun, Mon Mornings"

내가 생각할 수 있는 모든 방법은 세 부분(금요일 밤, 토요일/일요일 종일, 월요일 아침)과 관련됩니다.

이를 수행하는 더 효율적인 방법이 있습니까? 해당 시간 내에 매시간 이 작업을 수행할 수 있는 단일/이중 회선이 있습니까?

아니면 단순히 이 기간 내에 스크립트를 확인하는 것이 더 쉬울까요(그리고 해당 기간 내에 있지 않은 경우 종료)?

답변1

스크립트가 현재 실행 중인지 확인하고 그렇지 않은 경우 매시간 실행하려면 다음을 수행할 수 있습니다.

pgrep -x script-name.sh || script-name.sh

그러나 스크립트에 고유한 이름을 사용하지 않는 한 이 작업을 수행하고 싶지 않을 것입니다. 위의 예에서처럼 "echo"와 함께 사용하지 마십시오.

관련 정보