반응형

IT·디지털 자동화 블로그 · 파이썬 엑셀 관리
왜 자동 백업이 필요한가
실무에서 엑셀은 여전히 핵심 관리 도구입니다. 그러나 사람이 직접 백업을 하다 보면 종종 누락되거나 덮어쓰기 실수가 발생합니다. 파이썬을 활용하면 매일, 혹은 일정 주기로 자동 백업을 수행해 데이터 유실을 방지할 수 있습니다.
환경 설정
pip install openpyxl
백업을 자동화할 엑셀 파일과 저장 폴더를 미리 준비합니다.
폴더 구조 설계
📂 excel_backup_project/
├── backup_script.py
├── 📂 source/
│ ├── report.xlsx
│ └── data.xlsx
└── 📂 backup/
source 폴더에는 원본 파일을, backup 폴더에는 날짜별 백업을 저장합니다.
자동 백업 스크립트 작성
# file: backup_script.py
import os
import shutil
from datetime import datetime
# 경로 설정
source_dir = "source"
backup_dir = "backup"
# 날짜별 폴더 생성
today = datetime.now().strftime("%Y-%m-%d")
target_folder = os.path.join(backup_dir, today)
os.makedirs(target_folder, exist_ok=True)
# 백업 수행
for file in os.listdir(source_dir):
if file.endswith(".xlsx"):
src = os.path.join(source_dir, file)
dst = os.path.join(target_folder, file)
shutil.copy2(src, dst)
print(f"{file} 백업 완료 → {dst}")
print("모든 엑셀 파일 백업 완료!")
이 스크립트는 매일 실행할 때마다 새로운 날짜 폴더를 생성하고, 그 안에 모든 엑셀 파일을 자동으로 복사합니다.
자동 실행 스케줄러 설정
Windows 기준으로 작업 스케줄러(Task Scheduler)에 등록하면 매일 정해진 시간에 자동 실행됩니다.
- “작업 스케줄러” 실행
- 새 작업 → 동작 탭에서
python backup_script.py입력 - 트리거 탭에서 실행 주기 설정 (예: 매일 오전 9시)
Mac이나 Linux에서는 cron을 사용할 수 있습니다.
백업 확인 및 로그 기록
백업 성공 여부를 로그로 남겨두면 좋습니다.
# 로그 파일 기록 추가
log_file = os.path.join(backup_dir, "backup_log.txt")
with open(log_file, "a", encoding="utf-8") as f:
f.write(f"[{datetime.now()}] 백업 완료: {today}\n")
이제 매일 실행될 때마다 로그 파일에 기록이 추가되어 백업 이력을 확인할 수 있습니다.
다음 글 예고: 백업 파일 압축 및 이메일 발송 자동화
다음 편에서는 생성된 백업 폴더를 ZIP으로 압축하고, 이메일로 자동 전송하는 기능을 추가합니다.
관련 읽을거리: 매일 자동 보고서 생성 · 엑셀 시트 자동 생성
반응형