rsync
를 사용한 효율적인 파일 동기화
rsync
는 파일과 디렉터리를 동기화할 때 유용한 강력한 도구입니다. 로컬 및 원격 시스템 간에 효율적인 데이터 전송을 제공하며, 네트워크 대역폭을 절약할 수 있습니다. 여기서는 rsync
의 주요 기능과 사용법에 대해 자세히 설명합니다.
주요 기능
- 차분 전송: 변경된 부분만 전송하여 전송 시간을 줄이고 네트워크 대역폭을 절약합니다.
- 복제 및 백업: 로컬 디렉터리, 원격 서버와의 파일 동기화 및 백업에 유용합니다.
- 옵션 다양성: 압축, 삭제, 퍼미션 유지 등 다양한 옵션을 제공하여 유연한 파일 전송을 지원합니다.
설치
대부분의 리눅스 배포판에서 rsync
는 기본적으로 설치되어 있습니다. 설치되지 않은 경우, 다음 명령어를 사용하여 설치할 수 있습니다.
Ubuntu/Debian
sudo apt-get update
sudo apt-get install rsync
CentOS/RHEL
sudo yum install rsync
Fedora
sudo dnf install rsync
기본 사용법
로컬 디렉터리 복사
로컬 디렉터리 간의 파일을 복사하려면 다음 명령어를 사용합니다:
rsync -avh /source/directory/ /destination/directory/
여기서 -a
는 아카이브 모드(파일 속성 유지, 재귀적 복사)를 의미하고, -v
는 자세한 출력을, -h
는 사람이 읽기 쉬운 형식을 의미합니다.
원격 서버로 파일 동기화
로컬 디렉터리의 파일을 원격 서버로 동기화하려면 다음 명령어를 사용합니다:
rsync -avh /local/directory/ user@remote:/remote/directory/
여기서 user
는 원격 서버의 사용자 이름을, remote
는 원격 서버의 호스트 이름 또는 IP 주소를 나타냅니다.
원격 서버에서 파일 가져오기
원격 서버에서 로컬 디렉터리로 파일을 동기화하려면 다음 명령어를 사용합니다:
rsync -avh user@remote:/remote/directory/ /local/directory/
자주 사용되는 옵션
삭제 옵션
원본 디렉터리에서 삭제된 파일을 대상 디렉터리에서도 삭제하려면 --delete
옵션을 사용합니다:
rsync -avh --delete /source/directory/ /destination/directory/
압축 옵션
파일 전송 시 압축을 사용하여 전송 속도를 높이고 네트워크 대역폭을 줄이려면 -z
옵션을 사용합니다:
rsync -avzh /source/directory/ user@remote:/remote/directory/
부분 전송 옵션
전송 중단 시 재개할 수 있도록 부분적으로 전송하려면 --partial
옵션을 사용합니다:
rsync -avh --partial /source/directory/ user@remote:/remote/directory/
실용적인 예시
백업 스크립트
rsync
를 사용하여 주기적으로 데이터를 백업하는 스크립트를 작성할 수 있습니다. 예를 들어, 다음과 같은 스크립트를 사용하여 로컬 디렉터리를 원격 서버에 백업할 수 있습니다:
#!/bin/bash
SOURCE="/path/to/source/"
DESTINATION="user@remote:/path/to/destination/"
LOGFILE="/path/to/logfile.log"
rsync -avh --delete $SOURCE $DESTINATION >> $LOGFILE 2>&1
이 스크립트를 cron
작업으로 설정하여 주기적으로 실행할 수 있습니다:
crontab -e
그리고 다음 줄을 추가하여 매일 자정에 스크립트를 실행하도록 설정합니다:
0 0 * * * /path/to/backup_script.sh
정리
rsync
는 파일과 디렉터리를 동기화할 때 강력하고 유연한 도구입니다. 차분 전송을 통해 효율적인 파일 전송을 제공하며, 다양한 옵션을 통해 복잡한 파일 동기화 요구를 충족할 수 있습니다. 로컬 및 원격 시스템 간의 파일 동기화, 백업 스크립트 작성 등 다양한 용도로 활용할 수 있습니다. rsync
의 기능과 사용법을 잘 이해하고 적절히 활용하면, 파일 관리 작업을 더욱 효율적으로 수행할 수 있습니다.
'Linuxpia > 리눅스 사용 팁' 카테고리의 다른 글
[리눅스 팁] 파일의 차이를 요약해서 보려면, diffstat (33) | 2024.07.01 |
---|---|
파일이 같은지 여부 판단, diff, cmp, md5sum (37) | 2024.06.28 |
[리눅스 팁] `tmux`를 사용한 세션 관리 (33) | 2024.06.26 |
[리눅스 팁] 터미널에서 계산을 하려면 (33) | 2024.06.18 |
도메인 만료 일자 확인하기 (36) | 2024.06.16 |