[파이썬] shutil로 원격 서버의 백업 생성하기

서버의 백업은 중요한 데이터를 보호하기 위해 필수적입니다. 이 문서에서는 Python의 shutil 라이브러리를 사용하여 원격 서버의 백업을 생성하는 방법에 대해 알아보겠습니다.

1. SSH를 통해 원격 서버에 접속하기

원격 서버에 접속하기 위해서는 SSH를 사용해야 합니다. Python에서 SSH 접속을 관리하기 위해 paramiko 라이브러리를 사용할 수 있습니다. 다음은 paramiko를 설치하는 방법입니다.

pip install paramiko

이제 SSH 접속을 위한 코드를 작성해보겠습니다. 다음 예시 코드는 paramiko를 사용하여 호스트, 사용자 이름 및 비밀번호로 원격 서버에 접속하는 방법을 보여줍니다.

import paramiko

host = 'your_remote_server_ip'
port = 22
username = 'your_username'
password = 'your_password'

# SSH 클라이언트 객체 생성
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 원격 서버에 접속
ssh.connect(host, port, username, password)

# 접속 성공 시 메시지 출력
print('Connected to remote server')

2. shutil을 사용하여 백업 생성하기

이제 SSH 접속을 성공했으므로 shutil을 사용하여 원격 서버의 백업을 생성할 수 있습니다. shutil은 파일 및 폴더를 복사, 이동 또는 삭제하는 함수를 제공하는 파이썬 표준 라이브러리입니다.

다음 예시 코드는 원격 서버의 /var/www/html 디렉토리를 로컬 시스템의 /backup 디렉토리로 복사하는 방법을 보여줍니다.

import shutil

remote_directory = '/var/www/html'
local_directory = '/backup/'

# 원격 서버의 디렉토리를 로컬 시스템으로 복사
shutil.copytree(f"ssh://{username}:{password}@{host}:{port}{remote_directory}", local_directory)

print('Backup created successfully')

위의 코드를 실행하면 /var/www/html 디렉토리의 모든 파일과 하위 디렉토리가 /backup 디렉토리로 복사됩니다.

3. 원격 서버와의 접속 종료하기

백업을 완료한 후에는 원격 서버와의 SSH 접속을 종료해야 합니다. 다음 코드는 SSH 접속을 종료하는 방법을 보여줍니다.

# 원격 서버 접속 종료
ssh.close()

print('Disconnected from remote server')

마무리

Python의 shutil 라이브러리를 사용하여 원격 서버의 백업을 생성하는 방법에 대해 알아보았습니다. 이를 통해 중요한 데이터를 안전하게 보호하고, 원격 서버 관리를 보다 효율적으로 할 수 있습니다.