[파이썬] 백업 및 복원 자동화

이 블로그에서는 파이썬을 사용하여 백업 및 복원 작업을 자동화하는 방법에 대해 알아보겠습니다.

1. 백업

데이터의 손실을 방지하기 위해 파일이나 데이터베이스를 정기적으로 백업하는 것은 매우 중요합니다. 파이썬을 사용하면 이러한 백업 작업을 자동화할 수 있습니다. 아래는 파일을 백업하는 간단한 예제 코드입니다.

import shutil
import os
import datetime

# 백업할 파일 또는 폴더의 경로
source = '/path/to/source'

# 백업 파일의 저장 경로
backup = '/path/to/backup'

# 백업 파일 이름에 현재 날짜를 추가하여 생성
timestamp = datetime.datetime.now().strftime('%Y-%m-%d')
backup_file = f'{backup}/backup_{timestamp}.zip'

shutil.make_archive(backup_file, 'zip', source)
print(f'백업이 완료되었습니다: {backup_file}')

위 코드에서는 shutil 모듈을 사용하여 source로 지정된 파일 또는 폴더를 backup_file 경로에 zip 형식으로 백업합니다. datetime 모듈을 사용하여 백업 파일에 현재 날짜를 추가합니다.

2. 복원

백업 된 파일을 복원하는 것은 데이터를 되찾는 것과 같은 중요한 작업입니다. 파이썬을 사용하면 백업된 파일을 자동으로 복원할 수 있습니다. 아래는 백업 파일을 복원하는 예제 코드입니다.

import shutil

# 복원할 백업 파일 경로
backup_file = '/path/to/backup/backup_2022-01-01.zip'

# 복원할 위치
destination = '/path/to/restore'

shutil.unpack_archive(backup_file, destination)
print(f'복원이 완료되었습니다: {destination}')

위 코드에서는 shutil 모듈의 unpack_archive 함수를 사용하여 backup_file 경로의 백업 파일을 destination 경로에 복원합니다.

3. 자동화

이제 백업 및 복원 작업을 자동화하기 위해 스케줄러를 사용하는 방법을 알아보겠습니다. 예를 들어, 매일 자정에 백업 작업을 실행하고, 매주 특정한 시간에 복원 작업을 실행하도록 설정할 수 있습니다. 아래는 crontab을 사용하여 스케줄러 작업을 설정하는 예제입니다.

# 백업 스케줄러 설정 (매일 자정에 실행)
0 0 * * * python /path/to/backup_script.py

# 복원 스케줄러 설정 (매주 월요일 8시에 실행)
0 8 * * MON python /path/to/restore_script.py

위 스케줄러 설정에서는 backup_script.pyrestore_script.py를 각각 매일 자정과 매주 월요일 8시에 실행합니다.

파이썬을 사용하여 백업 및 복원 작업을 자동화하는 방법에 대해 알아보았습니다. 이를 통해 데이터 손실을 최소화하고, 효율적으로 백업 및 복원 작업을 수행할 수 있습니다.