rsync의 세 가지 전송 모드 및 주요 오류 해결법

rsync의 세 가지 전송 방식 개요

rsync는 데이터 전송을 위한 유연한 도구로, 다음 세 가지 주요 모드를 지원한다:

  1. 로컬 복사 모드: 로컬 파일 시스템 내에서 파일 또는 디렉터리 간 복사 수행 (cp와 유사)
  2. 원격 전송 모드: 원격 서버와의 연결을 통해 데이터를 전송하며, 증분 백업 및 차이 백업 기능 제공 (scp와 달리 효율적)
  3. 지속적 서비스 모드 (Daemon): rsync를 배경 서비스로 실행하여 보안성과 관리 용이성을 높임

1. 로컬 복사 모드

로컬 환경에서 파일이나 폴더를 복사할 때 사용.

rsync [옵션] [원본 경로] [대상 경로]
  • -t: 시간 정보 유지
  • -r: 하위 디렉터리 포함 재귀 복사
  • 자주 사용하는 옵션 조합: -avzP

예시 1: 임시 디렉터리의 압축 파일을 마운트된 디렉터리로 이동

[root@rsync opt]# rsync /tmp/etc.tar.gz /mnt/

예시 2: 루트 디렉터리 전체를 백업 대상으로 복사

[root@rsync opt]# rsync -r /root/ /mnt/

2. 원격 전송 모드

원격 호스트와의 텍스트 기반 전송을 가능하게 함.

데이터 전송 (푸시):

rsync [옵션] [로컬 파일] [사용자]@[호스트]:[원격 경로]

예시: 3.txt 파일을 원격 서버에 업로드

[root@rsync tmp]# rsync -avzP 3.txt root@172.16.1.51:/opt/

데이터 다운로드 (풀링):

rsync [옵션] [사용자]@[호스트]:[원격 경로] [로컬 경로]

예시: 원격 서버의 3.txt 파일을 로컬로 다운로드

[root@rsync tmp]# rsync -avzP root@172.16.1.51:/opt/3.txt /tmp/

3. 지속 서비스 모드 (Daemon 방식)

보안성과 관리 용이성을 위해 권장되는 방법.

서비스 설정 절차 (서버 측)

  1. 설정 파일 작성 (/etc/rsyncd.conf)
    uid = rsync
    gid = rsync
    port = 873
    fake super = yes
    use chroot = no
    max connections = 200
    timeout = 600
    ignore errors
    read only = false
    list = false
    auth users = rsync_backup
    secrets file = /etc/rsync.passwd
    log file = /var/log/rsyncd.log
    
    [backup]
    comment = backup area for oldboyedu
    path = /backup
  2. 시스템 계정 생성
    useradd rsync -r -M -s /sbin/nologin
  3. 암호 파일 생성 및 권한 설정
    echo 'rsync_backup:123456' > /etc/rsync.passwd
    chmod 600 /etc/rsync.passwd
  4. 백업 디렉터리 생성 및 소유권 설정
    mkdir /backup
    chown rsync.rsync /backup
  5. 서비스 시작
    systemctl start rsyncd

클라이언트 설정 절차

  1. rsync 설치
    yum install rsync -y
  2. 암호 입력 방식으로 전송
    rsync -avzP /opt/3.txt rsync_backup@172.16.1.41::backup
  3. 암호 파일 사용
    echo "123456" > /etc/rsync.passwd
    chmod 600 /etc/rsync.passwd
    rsync -avzP /opt/3.txt rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.passwd
  4. 환경 변수 활용
    export RSYNC_PASSWORD=123456
    rsync -avzP /opt/3.txt rsync_backup@172.16.1.41::backup

4. 일반적인 오류 및 해결 방법

  • Permission denied: 사용자 권한 부족. 서비스 계정 소유권 확인 필요
  • Connection refused: rsyncd 서비스 미실행 또는 포트 873 차단. systemctl status rsyncd 확인
  • Invalid password: /etc/rsync.passwd 파일 내용 또는 권한 오류. 반드시 600 권한 설정 필수
  • Module not found: 설정 파일의 [backup] 모듈 이름이 일치하지 않음. 클라이언트에서 ::backup로 접근했는지 확인
  • Cannot access directory: 백업 경로(/backup)의 소유권 또는 권한 문제. chown rsync.rsync /backup 실행

태그: rsync linux 파일 전송 백업 Daemon

5월 30일 17:01에 게시됨