마지막 스크립트가 1분 이내에 실행되지 않으면 새 스크립트를 시작합니다.

마지막 스크립트가 1분 이내에 실행되지 않으면 새 스크립트를 시작합니다.

30분마다 스크립트를 실행하기에는 cron 탭에 항목이 너무 많습니다(스크립트 50개 이상).

30분마다 모든 스크립트가 동시에 실행되므로 한 번에 50개 이상의 프로세스가 시작되므로 서버 부하가 증가합니다.

이 문제를 해결하기 위해 crontab을 설정하여 쉘 스크립트를 실행하게 하고, 이 쉘 스크립트 내에서 모든 스크립트가 하나씩 실행되게 됩니다.

예를 들어allscript.shcrontab에서 실행됩니다

allscript.sh

#!/bin/bash
a.sh
b.sh
c.sh
d.sh
.
.
.
ay.sh

그런데 하나씩 실행하다 보면 한 스크립트가 너무 많은 시간(5분)이 걸리면 다른 스크립트도 특정 시간만큼 기다려야 한다. 따라서 이 스크립트에서는 어떤 프로세스가 1분 이상 걸릴 경우 다른 스크립트의 실행이 자동으로 시작되도록 설정하고 싶습니다.

답변1

작업 대기열을 사용합니다. 당신이 할 수 있는 일은 코어당 하나의 스레드로 작업 대기열을 설정하는 것입니다. 이를 통해 모든 작업이 하나의 작업으로 대기열에 추가될 수 있으며, 한 작업이 다른 작업보다 오래 걸리면 다른 작업이 다른 스레드에서 실행됩니다.

이를 달성하는 방법에는 여러 가지가 있습니다.

다음은 귀하에게 도움이 될 수 있는 몇 가지 검색어입니다.

우분투 작업 대기열

배쉬 작업 대기열

관련 정보