본문 바로가기

리눅스

[draft] 우분투에 rsync를 설치하고 설정하는 방법

728x90

우분투에 rsync를 설치하고 설정하는 방법

rsync는 파일을 동기화하고 백업하는 데 널리 사용되는 툴로 로컬 및 원격 시스템 간에 파일을 효율적으로 복사할 수 있습니다.

1. rsync 설치

sudo apt update
sudo apt install rsync

rsync 버전 확인

rsync --version
rsync  version 3.2.7  protocol version 31
Copyright (C) 1996-2022 by Andrew Tridgell, Wayne Davison, and others.
Web site: https://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
    socketpairs, symlinks, symtimes, hardlinks, hardlink-specials,
    hardlink-symlinks, IPv6, atimes, batchfiles, inplace, append, ACLs,
    xattrs, optional secluded-args, iconv, prealloc, stop-at, no crtimes
Optimizations:
    SIMD-roll, no asm-roll, openssl-crypto, no asm-MD5
Checksum list:
    xxh128 xxh3 xxh64 (xxhash) md5 md4 sha1 none
Compress list:
    zstd lz4 zlibx zlib none
Daemon auth list:
    sha512 sha256 sha1 md5 md4

rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.

rsync 서비스 시작

sudo systemctl start rsync
sudo systemctl enable rsync

2. rsync 기본 사용법

로컬에서 파일 복사

  • -a : 보존 모드 (파일 권한, 소유자, 심볼릭 링크 등을 유지)
  • -v : 상세 출력 모드
  • -h : 사람이 읽기 쉬운 형식으로 출력
rsync -avh /source/directory/ /destination/directory/

원격 서버로 파일 복사

rsync -avh /source/directory/ user@remote:/destination/directory/

원격 서버에서 파일 가져오기

rsync -avh user@remote:/source/directory/ /destination/directory/
728x90

3. rsync를 통한 SSH 설정

원격 서버와의 파일 동기화를 SSH를 통해 보안 연결로 설정할 수 있습니다. 기본적으로 rsync는 SSH를 사용하여 통신하므로 SSH 키를 설정하면 암호 입력 없이도 자동으로 파일을 전송할 수 있습니다.

 

SSH 키 생성 및 원격 서버에 배포

ssh-keygen -t rsa
ssh-copy-id user@remote

4. rsync 설정 파일 사용

여러 파일이나 디렉터리를 동기화해야 하는 경우 rsync 설정 파일을 만들어서 관리할 수 있습니다.

 

rsyncd 설정 파일 편집

$ ls -l /etc/rsyncd.conf
ls: cannot access '/etc/rsyncd.conf': No such file or directory
vim /etc/rsyncd.conf
# /etc/rsyncd: configuration file for rsync daemon mode

# See rsyncd.conf man page for more options.

# configuration example:

# uid = nobody
# gid = nobody
# use chroot = yes
# max connections = 4
# pid file = /var/run/rsyncd.pid
# exclude = lost+found/
# transfer logging = yes
# timeout = 900
# ignore nonreadable = yes
# dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2

# [ftp]
#        path = /home/ftp
#        comment = ftp export area

uid = nobody
gid = nogroup
use chroot = yes
read only = no
[backup]
    path = /path/to/backup
    comment = Backup directory
    auth users = youruser
    secrets file = /etc/rsyncd.secrets

비밀번호 파일 설정

  • /etc/rsyncd.secrets 파일을 생성하여 사용자 인증을 추가할 수 있습니다.
vim /etc/rsyncd.secrets
youruser:yourpassword

파일의 권한을 적절하게 설정합니다.

chmod 600 /etc/rsyncd.secrets

5. 자동화 스크립트 작성(백업 작업)

rsync 명령을 자동으로 실행하려면 cron을 사용하여 백업 스크립트를 일정 간격으로 실행할 수 있습니다.

 

백업 스크립트 생성

vim ~/backup.sh
#!/bin/bash

rsync -avh /source/directory/ user@remote:/destination/directory/

실행 권한 부여

chmod +x ~/backup.sh

cron에 등록

  • 매일 자정에 스크립트를 실행합니다.
crontab -e
0 0 * * * /bin/bash /home/youruser/backup.sh

 

rsync를 사용하여 우분투에서 파일 동기화 및 백업을 설정할 수 있습니다.

 

# /etc/rsyncd: rsync 데몬 모드를 위한 구성 파일 # 자세한 옵션은 rsyncd.conf 매뉴얼 페이지를 참조하세요. # 구성 예: # uid = 없음 # gid = 없음 # chroot 사용 = yes # 최대 연결 수 = 4 # pid 파일 = /var/run/rsyncd.pid # 제외 = loss+found/ # 전송 로깅 = yes # 시간 초과 = 900 # 읽을 수 없는 것을 무시 = yes # 압축하지 않음 = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 # [ftp] # path = /home/ftp # comment = ftp 내보내기 영역 uid = 아무도 gid = nogroup chroot 사용 = 예 읽기 전용 = 아니오 [backup] 경로 = /path/to/backup comment = 백업 디렉터리 인증 사용자 = youruser secrets 파일 = /etc/rsyncd.secrets
 
728x90