«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Recent Posts
Today
Total
03-10 18:25
300x250
관리 메뉴

변군이글루 블로그(Development)

CentOS 7에서 lsyncd와 rsync를 사용하여 파일의 실시간 동기화를 설정하는 방법 본문

리눅스

CentOS 7에서 lsyncd와 rsync를 사용하여 파일의 실시간 동기화를 설정하는 방법

변군Dev 2022. 1. 28. 12:09
728x90

CentOS 7에서 lsyncd와 rsync를 사용하여 파일의 실시간 동기화를 설정하는 방법

 

l1

테스트 환경

  • 운영체제 정보
$ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
  • 서버 정보
서버명 아이피 비고
bvm111 111.111.111.111 source
bvm222 222.222.222.222 targe

lsyncd와 rsync 설치

bvm111 서버와 bvm222 서버에 lsyncd, rsync 패키지 설치

  • EPEL 저장소 설치
sudo yum install -y epel-release
  • lsyncd, rsync 패키지 설치
sudo yum install -y lsyncd rsync
  • lsyncd 설정 파일 확인(lsyncd.conf)
sudo vim /etc/lsyncd.conf
----
-- User configuration file for lsyncd.
--
-- Simple example for default rsync, but executing moves through on the target.
--
-- For more examples, see /usr/share/doc/lsyncd*/examples/
--
sync{default.rsyncssh, source="/var/www/html", host="localhost", targetdir="/tmp/htmlcopy/"}

lsyncd.conf 설정 파일의 주요 옵션

  • sync 블록: 동기화할 대상을 지정합니다.
  • source 옵션: 동기화할 원본 디렉토리를 지정합니다.
  • target 옵션: 동기화할 대상 디렉토리를 지정합니다.
  • rsync_options 옵션: rsync 옵션을 지정합니다.

lsyncd 데몬의 주요 옵션

  • logfile 옵션: lsyncd 데몬의 로그 파일 경로를 지정합니다.
  • pidfile 옵션: lsyncd 데몬의 PID 파일 경로를 지정합니다.
  • status_interval 옵션: lsyncd 데몬의 상태를 확인하는 간격을 지정합니다.
  • delay 옵션: 동기화 작업을 수행하기 전에 지연하는 시간을 지정합니다.

참고

  • lsyncd 데몬은 rsync를 사용하여 동기화를 수행합니다. 따라서 rsync가 설치되어 있어야 합니다.
  • lsyncd 데몬은 inotify를 사용하여 파일 시스템의 변경 사항을 감지합니다. 따라서 inotify가 활성화되어 있어야 합니다.
  • rsyncd 설정 파일 확인(rsyncd.conf)
sudo 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

서비스 시작 및 활성화

더보기
  • lsyncd 서비스 시작 및 활성화
    • lsyncd 서비스를 시작하고 부팅 시 자동으로 시작하도록 활성화합니다.
systemctl --now enable lsyncd.service
  • rsyncd 서비스 시작 및 활성화
    • rsyncd 서비스를 시작하고 부팅 시 자동으로 시작하도록 활성화합니다.
systemctl --now enable rsyncd.service

---

 

  • logrotate 설정 파일 생성 또는 편집
sudo vim /etc/logrotate.d/lsyncd
/var/log/lsyncd/lsyncd.log {
    daily                   # 일일 로테이트
    rotate 7                # 최대 7일까지 로그 보관
    compress                # 로그 압축
    missingok               # 로그 파일이 없어도 오류 무시
    notifempty              # 비어 있지 않은 파일만 로테이트
    create 0644 root root   # 로테이트된 로그 파일 생성 권한 및 소유자 지정
}
728x90

bvm111 서버에서 bvm222 서버로 실시간 동기화

  • 출발지(source) : bvm111, /apps/file
  • 목적지(target) : bvm222, /apps/file
  • 사용자 계정 : oracle

bvm111 서버 - lsyncd 설정

  • lsyncd 설정 파일 편집
vim /etc/lsyncd.conf
$ vim /etc/lsyncd.conf
----
-- User configuration file for lsyncd.
--
-- Simple example for default rsync, but executing moves through on the target.
--
-- For more examples, see /usr/share/doc/lsyncd*/examples/
--
-- sync{default.rsyncssh, source="/var/www/html", host="localhost", targetdir="/tmp/htmlcopy/"}

settings {
        logfile = "/var/log/lsyncd/lsyncd.log",
        statusFile = "/var/log/lsyncd/lsyncd.status",
        insist = true,
        statusInterval = 10
}
sync {
        default.rsync,
        source = "/apps/file/",
        target = "222.222.222.222::filesync",
}
  • lsyncd 서비스 시작 및 활성화
systemctl --now enable lsyncd.service
  • lsyncd 서비스 재시작
systemctl restart lsyncd.service
  • lsyncd 서비스 상태 확인
systemctl status lsyncd.service
$ systemctl status lsyncd.service
● lsyncd.service - Live Syncing (Mirror) Daemon
   Loaded: loaded (/usr/lib/systemd/system/lsyncd.service; enabled; vendor preset: disabled)
   Active: active (running) since 금 2021-01-22 16:01:06 KST; 17s ago
 Main PID: 4434 (lsyncd)
    Tasks: 1
   Memory: 456.0K
   CGroup: /system.slice/lsyncd.service
           └─4434 /usr/bin/lsyncd -nodaemon /etc/lsyncd.conf

 1월 22 16:01:06 bvm111 systemd[1]: lsyncd.service failed.
 1월 22 16:01:06 bvm111 systemd[1]: Started Live Syncing (Mirror) Daemon.

** lsyncd.conf 설정 파일에서 주석은 -- 입니다.

bvm222 서버 - rsyncd 설정

  • rsyncd 서비스 시작 및 활성화
systemctl --now enable rsyncd.service
  • rsyncd 설정 파일 편집
vim /etc/rsyncd.conf
$ 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
#

[filesync]
path = /apps/file
comment = filesync
uid = oracle
gid = oracle
use chroot = yes
read only = no
hosts allow = 111.111.111.111
max connections = 10
timeout 600
  • rsyncd 서비스 재시작
systemctl restart rsyncd.service
  • rsyncd 서비스 상태 확인
systemctl status rsyncd.service
$ systemctl status rsyncd.service
● rsyncd.service - fast remote file copy program daemon
   Loaded: loaded (/usr/lib/systemd/system/rsyncd.service; enabled; vendor preset: disabled)
   Active: active (running) since 금 2021-01-22 15:36:37 KST; 3min 43s ago
 Main PID: 15328 (rsync)
   CGroup: /system.slice/rsyncd.service
           └─15328 /usr/bin/rsync --daemon --no-detach

 1월 22 15:36:37 bvm222 systemd[1]: Started fast remote file copy program daemon.
 1월 22 15:36:37 bvm222 rsyncd[15328]: rsyncd version 3.1.2 starting, listening on port 873

 

이제 lsyncd와 rsync를 사용하여 CentOS 7에서 파일의 실시간 동기화가 설정되었습니다. /원본/디렉토리에서 파일을 수정하면 해당 변경 사항이 /대상/디렉토리로 자동으로 복사됩니다. 설정 파일을 원하는 대로 조정하여 파일 동기화를 사용자 정의할 수 있습니다.

 

728x90