코드 자동 재실행 쉘 스크립트

max_attempts=10000
attempt=1
exit_code=1
​
while [[ $attempt -le $max_attempts && $exit_code -ne 0 ]]; do
    echo "Attempt $attempt"
    python recipe_crawl.py # 원하는 파일으로 수정
    exit_code=$?
    ((attempt++))
    sleep 300 # 5분후 재실행
doneif [[ $exit_code -ne 0 ]]; then
    echo "Failed after $max_attempts attempts"
fi
  1. max_attempts 변수에 최대 시도 횟수를 설정합니다. 이 변수는 스크립트가 실행될 때 변경할 수 있습니다.
  2. attempt 변수를 1로 초기화합니다. 이 변수는 현재 시도 횟수를 나타냅니다.
  3. exit_code 변수를 1로 초기화합니다. 이 변수는 recipe_crawl.py 스크립트의 종료 코드(exit code)를 저장합니다.

    • while 루프에서 현재 시도 횟수가 최대 시도 횟수 이하이고 exit_code가 0이 아닐 때까지 반복합니다.각 시도에서 “Attempt [시도 번호]” 메시지를 출력합니다.
    • python recipe_crawl.py 명령을 실행하여 recipe_crawl.py 스크립트를 실행합니다.
    • exit_code 변수에 recipe_crawl.py 스크립트의 종료 코드를 저장합니다.
    • attempt 변수를 증가시킵니다.
    • sleep300초(5분) 동안 대기합니다.
  4. while 루프가 종료되면, 최대 시도 횟수를 모두 사용했거나 recipe_crawl.py 스크립트의 종료 코드가 0이 아닌 경우 “Failed after [시도 횟수] attempts” 메시지를 출력합니다.

이 스크립트를 실행하면 recipe_crawl.py 스크립트를 최대 시도 횟수까지 반복 실행하며, 실행이 실패한 경우 메시지가 출력됩니다. recipe_crawl.py 스크립트가 실행되는 동안 각 시도마다 5분씩 대기합니다. 필요에 따라 max_attempts 변수의 값을 조정하여 실행할 시도 횟수를 변경할 수 있습니다.

실행 : bash retry_script.sh

댓글남기기