Linux

[Linux] rsync 명령어를 통한 다양한 예제

IT-PAPA 2023. 4. 14. 06:48
728x90
반응형

rsync 명령어는 리눅스에서 파일 및 디렉토리를 동기화하는데 사용되는 강력한 도구입니다. 다음은 rsync 명령어의 일반적으로 사용되는 옵션들을 테이블로 정리하였습니다.

옵션 설명
-a, --archive 파일을 아카이브 모드로 동기화합니다. 파일 속성, 퍼미션, 타임스탬프, 심볼릭 링크 등을 보존합니다.
-v, --verbose 상세한 출력 모드로 동작합니다. 동기화 작업의 진행 상황을 자세히 표시합니다.
-z, --compress 파일을 압축하여 전송합니다. 네트워크 대역폭을 절약할 수 있습니다.
-r, --recursive 디렉토리를 재귀적으로 동기화합니다. 디렉토리 내의 모든 파일과 서브디렉토리를 처리합니다.
-u, --update 대상 파일이 소스 파일보다 오래된 경우에만 동기화를 수행합니다.
-n, --dry-run 실제로 동기화를 수행하지 않고 시뮬레이션 모드에서 동작합니다. 어떤 작업이 수행될 것인지 미리 확인할 수 있습니다.
-h, --human-readable 사람이 읽기 쉬운 형식으로 출력합니다. 파일 크기 등을 더 이해하기 쉽게 표시합니다.
--delete 소스에 없는 파일을 대상에서 삭제합니다. 두 폴더 간의 동기화를 완전히 맞춥니다.

 

예제설명

예제 설명
rsync -a /source_dir/ /destination_dir/ /source_dir/의 내용을 /destination_dir/에 재귀적으로 동기화합니다. 모든 파일 속성을 보존하고 자세한 출력 모드로 동작합니다.
rsync -avz /source_dir/ user@remote:/destination_dir/ /source_dir/의 내용을 user@remote 서버의 /destination_dir/에 압축하여 전송하여 동기화합니다. 자세한 출력 모드로 동작하며, 변경된 파일만 동기화합니다.
rsync -u --delete /source_dir/ /destination_dir/ /source_dir/의 내용을 /destination_dir/에 재귀적으로 동기화합니다. 대상 디렉토리에 이미 존재하는 파일보다 변경된 파일만 동기화하고, 출발지에 존재하지 않는 파일은 대상 디렉토리에서 삭제합니다.

 

1. 로컬 디렉토리를 원격지로 복사하기

rsync -avz /path/to/local/directory/ user@remote:/path/to/remote/directory/

위 명령어는 로컬 디렉토리를 원격지로 복사하는 예제입니다. -a 옵션은 아카이브 모드로 동작하여 파일 속성, 퍼미션, 시간 등을 보존하며, -v 옵션은 상세한 출력을 표시하고, -z 옵션은 데이터를 압축하여 전송합니다.

 

2. 원격지 디렉토리를 로컬로 복사하기

rsync -avz user@remote:/path/to/remote/directory/ /path/to/local/directory/

위 명령어는 원격지 디렉토리를 로컬로 복사하는 예제입니다. 마찬가지로 -a, -v, -z 옵션을 사용하여 동작을 제어할 수 있습니다.

 

3. 원격지와 로컬 디렉토리를 동기화하기

rsync -avz --delete /path/to/local/directory/ user@remote:/path/to/remote/directory/

위 명령어는 원격지와 로컬 디렉토리를 동기화하는 예제입니다. --delete 옵션은 원격지에 있는 파일이나 디렉토리가 로컬에 없는 경우 해당 파일이나 디렉토리를 삭제하는 기능을 수행합니다.

 

4. 특정 파일 또는 디렉토리만 복사하기

rsync -avz /path/to/local/directory/file.txt user@remote:/path/to/remote/directory/

위 명령어는 특정 파일만 원격지로 복사하는 예제입니다. 복사하고자 하는 파일의 경로를 지정하여 해당 파일만 복사할 수 있습니다.

 

5. SSH 키를 사용하여 비밀번호 없이 원격지와 동기화하기

rsync -avz -e "ssh -i /path/to/private/key" /path/to/local/directory/ user@remote:/path/to/remote/directory/

위 명령어는 SSH 키를 사용하여 비밀번호 없이 원격지와 동기화하는 예제입니다. -e 옵션을 사용하여 SSH 키의 위치와 사용할 개인 키를 지정할 수 있습니다.

728x90
반응형
LIST