사용자 도구

사이트 도구


wiki:it:dream_of_enc:automation:automail_sh

Automail.sh: 자동화 실행 래퍼 스크립트

`Automail.sh`는 `NewstoHR.py` 파이썬 스크립트를 Linux 서버 환경에서 안정적으로 자동 실행하기 위해 만들어진 셸 스크립트입니다.

주로 `crontab`과 같은 스케줄러에 등록되어 사용되며, 파이썬 코드가 실행되기 전 필요한 모든 사전 작업을 처리하는 래퍼(Wrapper) 역할을 합니다.

주요 기능 및 실행 순서

1. 실행 경로 설정:

  • 스크립트 시작 부분에서 `cd “$(dirname “$0”)“` 명령을 사용합니다.
  • 이것은 `crontab`이 어떤 위치에서 이 스크립트를 실행하더라도, 항상 `Automail.sh` 파일이 위치한 디렉토리로 먼저 이동하도록 만듭니다. 이를 통해 파일 경로 관련 오류를 원천적으로 방지합니다.

2. 로그 기록 시작:

  • 스크립트가 실행되는 시간과 함께 시작 로그를 `cron.log` 파일에 기록합니다.

3. 환경 변수 로드 및 파이썬 스크립트 실행:

  • 이 스크립트의 가장 핵심적인 부분입니다.
  • `env $(grep …)` 명령을 사용하여 `.env` 파일에 저장된 API 키, 비밀번호 등의 민감한 정보들을 환경 변수로 설정함과 동시에, 지정된 파이썬 가상환경(`/.venv/bin/python`)을 이용해 `NewstoHR.py`를 실행합니다.
  • 이 방식을 통해, 파이썬 코드 내에서 `os.getenv()`로 환경 변수를 안전하게 불러와 사용할 수 있습니다.

4. 실행 결과 로깅:

  • `NewstoHR.py` 스크립트가 실행되면서 출력하는 모든 메시지(성공, 실패, 오류 등)와 스크립트 자체의 오류 메시지를 `» “$LOG_FILE” 2>&1` 구문을 통해 `cron.log` 파일에 모두 기록합니다.
  • 이를 통해 스케줄링된 작업이 정상적으로 수행되었는지, 오류가 발생했다면 원인이 무엇인지 추적할 수 있습니다.

5. 로그 기록 종료:

  • 스크립트 실행이 끝나는 시간을 `cron.log` 파일에 남기며 작업을 마칩니다.
#!/bin/bash

# ... (경로 설정) ...

# 스크립트가 위치한 디렉토리로 이동
BASE_DIR=$(cd "$(dirname "$0")" && pwd)
cd "$BASE_DIR"

# ... (로그 및 변수 설정) ...

echo "===== Crontab 스크립트 시작 =====" >> "$LOG_FILE"

# .env 파일의 변수들을 환경변수로 삼아 파이썬 스크립트 실행 (핵심 로직)
env $(grep -v ... "$ENV_FILE") "$VENV_PYTHON" "$PYTHON_SCRIPT" >> "$LOG_FILE" 2>&1

echo "===== Crontab 스크립트 종료 =====" >> "$LOG_FILE"

결론적으로 `Automail.sh`는 복잡한 파이썬 프로젝트를 자동화 환경에서 안정적으로 구동하기 위한 필수적인 장치입니다.

wiki/it/dream_of_enc/automation/automail_sh.txt · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki