[파이썬] 리눅스 서버 백업 및 복원 자동화

리눅스 서버에서 데이터를 안전하게 보호하기 위해 백업과 복원은 매우 중요합니다. 이러한 작업을 수동으로 처리하는 것은 번거로울 수 있으며 시간을 낭비할 수 있습니다. 그러나 파이썬을 이용하여 리눅스 서버의 백업 및 복원을 자동화할 수 있다면 이러한 문제를 해결할 수 있습니다.

백업 자동화

리눅스 서버의 백업을 자동화하기 위해 파이썬을 사용할 수 있습니다. 여기서는 rsync를 이용한 백업 방법을 설명합니다. Rsync는 원격 및 로컬 파일 및 디렉토리를 동기화하는 강력한 도구 중 하나입니다.

import subprocess

def backup(source_path, destination_path):
    command = f"rsync -avz {source_path} {destination_path}"
    subprocess.call(command, shell=True)

# 사용 예시
source = "/var/www/html"  # 백업할 디렉토리 경로
destination = "/backup"  # 백업된 파일을 저장할 디렉토리 경로
backup(source, destination)

위의 예제에서는 backup 함수를 정의하고, source_pathdestination_path 매개변수를 받습니다. 이 함수는 rsync 명령을 사용하여 source_path의 파일과 디렉토리를 destination_path로 백업합니다.

복원 자동화

백업된 데이터를 복원하는 것도 마찬가지로 중요합니다. 파이썬을 사용하여 리눅스 서버의 복원을 자동화할 수 있습니다. 여기서는 rsync를 사용하여 백업된 데이터를 복원하는 방법을 설명합니다.

import subprocess

def restore(source_path, destination_path):
    command = f"rsync -avz {source_path} {destination_path}"
    subprocess.call(command, shell=True)

# 사용 예시
source = "/backup"  # 복원할 백업 파일이 위치한 디렉토리 경로
destination = "/var/www/html"  # 복원될 디렉토리 경로
restore(source, destination)

위의 예제에서는 restore 함수를 정의하고, source_pathdestination_path 매개변수를 받습니다. 이 함수는 rsync 명령을 사용하여 source_path의 백업 파일을 destination_path로 복원합니다.

스케줄링

자동화된 백업 및 복원 작업을 주기적으로 실행하려면 Cron 작업 스케줄러를 사용할 수 있습니다. Cron을 사용하면 특정 시간대나 간격마다 스크립트를 실행할 수 있습니다. 예를 들어, 매일 자정에 백업 작업을 실행하려면 다음과 같이 Cron 작업을 설정할 수 있습니다.

0 0 * * * /usr/bin/python3 /path/to/backup_script.py

위의 예시에서는 backup_script.py라는 파이썬 스크립트를 매일 자정에 실행합니다.

이제 파이썬을 사용하여 리눅스 서버의 백업 및 복원 작업을 자동화하는 방법을 알았습니다. 이를 통해 데이터의 보호와 시간 절약이 가능하며, 신속하고 효율적인 관리를 할 수 있습니다.