본문 바로가기
Linux

Rsync 명령어

by Yoon_estar 2024. 2. 27.
728x90
반응형

개요

rsync는 리눅스 및 유닉스 시스템에서 파일과 디렉토리를 동기화하기 위해 널리 사용되는 강력한 도구입니다. 
이 명령어는 네트워크를 통한 효율적인 파일 전송을 가능하게 하며, 백업, 미러링, 혹은 단순히 로컬 파일의 복사와 이동에 이상적입니다.

Rsync의 기능 및 특징

rsync는 빠르고 범용적인 파일 복사 도구로 다음과 같은 특징을 가지고 있습니다.

!! 효율성: rsync는 변경된 부분만 전송하는 '델타 전송 알고리즘'을 사용하여 대역폭을 절약합니다.
!! 유연성: 로컬과 원격 시스템 간의 데이터 전송이 모두 가능합니다.
!! 보안: SSH를 통해 데이터를 암호화하여 전송할 수 있으며, 안전한 데이터 전송을 위한 인증 수단을 제공합니다.
!! 사용 편의성: 포괄적인 옵션을 제공하여 사용자가 전송 과정을 상세하게 제어할 수 있습니다.

Rsync의 기본 사용법

1. 로컬에서 로컬로 파일 동기화: rsync -a /path/to/source/ /path/to/destination/
2. 원격 호스트로 파일 전송: rsync -a /path/to/source/ user@remote:/path/to/destination/
3. 원격 호스트에서 로컬로 파일 전송: rsync -a user@remote:/path/to/source/ /path/to/destination/

자주 사용되는 Rsync 옵션

!! -a, --archive: 아카이브 모드로, 파일 권한, 소유자 정보, 심볼릭 링크 등을 보존하면서 동기화합니다.
!! -v, --verbose: 자세한 출력을 활성화합니다.
!! -z, --compress: 데이터 전송 시 압축을 사용합니다.
!! --delete: 대상 디렉토리에서 소스에 없는 파일을 삭제합니다.
!! -e, --rsh=COMMAND: 원격 쉘을 사용하여 연결합니다. SSH를 사용할 경우: -e ssh
!! --progress: 전송 중인 파일의 전송 진행 상황을 표시합니다.
!! --exclude: 특정 패턴의 파일 혹은 디렉토리를 제외합니다.
!! --dry-run: 실제로 파일을 전송하지 않고 전송할 파일 목록과 행동을 시뮬레이션합니다.

Rsync를 이용한 백업 및 동기화 스크립트 예제

#!/bin/bash
rsync -avz --delete --exclude 'temp/' --exclude 'cache/' /path/to/source/ user@remote:/path/to/backup/

! 위 스크립트는 /path/to/source/ 디렉토리의 내용을 원격 호스트의 /path/to/backup/ 디렉토리로 동기화합니다. 
이때 temp/와 cache/ 디렉토리는 제외하고, 원본에 없는 파일은 대상 디렉토리에서 삭제합니다.

결론

rsync는 데이터 동기화와 백업을 위한 리눅스 사용자의 필수 도구입니다.
 이 도구의 다양한 옵션과 델타 전송 알고리즘을 활용하면, 네트워크를 통해 효율적으로 파일을 전송할 수 있습니다. 
반응형

'Linux' 카테고리의 다른 글

Bonding  (0) 2024.03.13
Uptime  (0) 2024.02.27
Mount  (0) 2024.02.19
지역 변수 & 전역 변수 & 쉘 변수 & 매개 변수  (0) 2024.02.17
Shell  (0) 2024.02.17