자동화의 핵심은 '조건이 되면 알아서 동작하는 것'입니다.
이번 편에서는 로그 파일을 실시간으로 감시하고,
특정 키워드가 포함되면 자동으로 반응하도록 만드는
파이썬 스크립트를 구성해봅니다.
예를 들어, 아래와 같은 상황에 활용할 수 있습니다:
- 서버 로그에서 "ERROR" 발생 시 텔레그램으로 알림
- 특정 프로그램이 종료되었는지 로그로 확인 후 재시작
- 디버깅 중 실시간 출력 확인과 동시에 자동 정리 작업 실행
- 텍스트 기반 시스템 로그 감시 후 조건 충족 시 자동 실행
👁🗨 사용할 기술: `watchdog` 패키지
`watchdog`은 폴더/파일 변화를 실시간으로 감시할 수 있는 Python 라이브러리입니다.
📦 설치 방법 (터미널)
```
pip install watchdog
```
📁 예시 시나리오
- 감시 대상: `log.txt`
- 키워드: "CRITICAL", "RESTART"
- 감지 시: `restart_program()` 함수 실행
🐍 파이썬 코드 예제
```python
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
LOG_FILE = 'log.txt'
KEYWORDS = ['CRITICAL', 'RESTART']
def restart_program():
print("🔁 재시작 실행됨")
class LogHandler(FileSystemEventHandler):
def on_modified(self, event):
if event.src_path.endswith(LOG_FILE):
with open(LOG_FILE, 'r', encoding='utf-8') as f:
lines = f.readlines()[-10:] # 최근 10줄만 확인
for line in lines:
if any(keyword in line for keyword in KEYWORDS):
restart_program()
break
if __name__ == "__main__":
observer = Observer()
handler = LogHandler()
observer.schedule(handler, path='.', recursive=False)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
```
⚙️ 작동 방식 설명
- 현재 디렉토리의 `log.txt`를 실시간 감시
- 파일이 수정되면 최근 몇 줄을 읽어 키워드를 찾음
- 키워드가 발견되면 즉시 지정된 함수 실행
📌 활용 예시
- 시스템 자동 복구
- 실시간 감시용 텔레그램 봇 연결
- 자가 점검 자동화 루틴 구성
- 디버깅 중 자동 정리 및 정지 루틴
이 구조를 잘 익혀두면
크론탭이나 작업 스케줄러보다 더 유연한 자동화 흐름을 만들 수 있습니다.
'PYTHON > 고급학습' 카테고리의 다른 글
고급 7편] 파이썬으로 특정 이벤트 발생 시 자동 실행하기.zip (0) | 2025.05.19 |
---|---|
고급 6편] 파이썬으로 자동 백업 스크립트 만들기.zip (0) | 2025.05.18 |
고급 4편] 텔레그램 봇으로 파이썬 자동 알림 보내기.zip (0) | 2025.05.17 |
고급 2편] 파이썬으로 폴더를 자동 정리하는 방법.zip (0) | 2025.05.17 |
[고급 1편] 파이썬으로 매일 자동 실행하는 방법.zip (0) | 2025.05.15 |