사용자 도구

사이트 도구


wiki:automation:automail_sh

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
wiki:automation:automail_sh [2025/07/30 06:43] – 만듦 - 바깥 편집 127.0.0.1wiki:automation:automail_sh [알 수 없는 날짜] (현재) – 제거됨 - 바깥 편집 (알 수 없는 날짜) 127.0.0.1
줄 1: 줄 1:
-====== Automail.sh: 자동화 실행 래퍼 스크립트 ====== 
- 
-`Automail.sh`는 `NewstoHR.py` 파이썬 스크립트를 **[[wiki:glossary:server_operations:linux|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` 파일에 남기며 작업을 마칩니다. 
- 
-<code> 
-#!/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" 
-</code> 
- 
-결론적으로 `Automail.sh`는 복잡한 파이썬 프로젝트를 자동화 환경에서 안정적으로 구동하기 위한 필수적인 장치입니다.  
  
wiki/automation/automail_sh.1753857794.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki