운영 작업이 짧은 셸 파이프라인의 범위를 넘어 구조화된 데이터, 재사용 가능한 로직, 안정적인 오류 처리가 필요해지면 Python이 실용적인 다음 단계가 됩니다. 이 실습 과정에서는 Python 3와 표준 라이브러리만 사용해 소규모 Linux 자동화 도구를 만듭니다.
시스템 명령을 실행하고, 디렉터리 트리를 관리하고, JSON 구성을 변환하고, 타사 패키지 없이 제한 시간이 있는 HTTP 점검을 수행합니다. 마지막 챌린지에서는 디스크 사용량과 웹 서비스 상태를 기계가 읽을 수 있는 JSON 보고서로 기록하는 로컬 상태 점검 스크립트를 완성합니다.
학습 내용
- Python 3 REPL을 사용하고 Linux 플랫폼 정보를 확인하는 스크립트 작성하기
subprocess.run으로 명령을 실행하고 출력을 캡처·디코딩하며 0이 아닌 종료 상태 처리하기- 디렉터리와 파일을 만들고
shutil로 이동·복사하며os.walk로 트리 순회하기 - 확장자로 파일을 필터링하고 구성 데이터를 변경하기 전에 백업 만들기
- JSON을 Python 딕셔너리로 읽고 값을 수정한 뒤
json.dump로 읽기 쉬운 JSON 쓰기 urllib.request로 HTTP 상태를 확인하고 타임아웃을 설정하며 HTTP 오류와 연결 실패 구분하기- 디스크와 로컬 서비스 결과를
/tmp/health_report.json에 쓰는 오류 처리형 상태 점검 스크립트 만들기
추천 대상
유지보수 가능한 Python 자동화를 도구 모음에 추가하려는 DevOps 학습자, 시스템 관리자, Bash 사용자에게 적합합니다.
선수 지식: Linux 터미널과 파일 시스템에 대한 기본 지식이 필요하며 Python 경험은 필요하지 않습니다.
학습 환경: Python 3, Bash, nano, 표준 Linux 명령, 연결 확인용 로컬 HTTP 서비스, Python 표준 라이브러리가 제공되는 브라우저 기반 Linux 터미널이며 패키지 설치나 클라우드 계정은 필요하지 않습니다.
자주 묻는 질문
Requests 같은 타사 Python 패키지가 필요한가요?
아니요. 모든 연습에서 subprocess, os, shutil, json, urllib 등 표준 라이브러리를 사용합니다. 네트워크 랩은 의도적으로 Requests 대신 urllib.request를 사용합니다.
일반적인 Python 프로그래밍 과정인가요?
아니요. 특정 운영 작업에 필요한 Python 문법과 제어 흐름을 소개합니다. 클래스, 패키징, 웹 프레임워크, 테스트 프레임워크, 일반 애플리케이션 개발은 범위 밖입니다.
파일 연습에서 중요한 시스템 파일을 수정하나요?
아니요. 프로젝트 디렉터리에 일회용 test_env 트리를 만들고 그 샘플 파일을 이름 변경, 이동, 복사, 순회, 필터링합니다.
마지막 상태 점검은 실제로 무엇을 모니터링하나요?
df -h를 실행하고 http://localhost가 HTTP 200을 반환하는지 확인합니다. 디스크 출력과 online 또는 offline 서비스 상태를 딕셔너리에 저장하고 유효한 들여쓰기 JSON을 /tmp/health_report.json에 씁니다. 배포형 모니터링 플랫폼이 아닌 로컬 스크립트입니다.



