운영 및 유지보수 리눅스 운영 및 유지 관리 rsync+inotify 실시간 동기화 예제 튜토리얼 공유

rsync+inotify 실시간 동기화 예제 튜토리얼 공유

Jun 20, 2017 am 11:57 AM
동기식 실시간

1.rsync

기존 cp, tar 백업 방법과 비교하여 rsyncrsync를 통해 높은 보안, 빠른 백업 및 증분 백업 지원이라는 장점이 있습니다. 원격 서버에 대한 파일 서버 데이터의 정기적인 백업, 로컬 디스크의 정기적인 데이터 미러링 등과 같이 높은 실시간 성능이 필요하지 않은 데이터 백업 요구 사항을 해결할 수 있습니다.

응용 시스템의 규모가 계속 확장됨에 따라 데이터 보안 및 안정성에 대한 요구 사항이 더욱 높아졌습니다. rsync는 고급 비즈니스에서 점차 많은 단점을 노출시켰습니다. 우선 rsync가 실시간으로 동기화할 때 비교 및 ​​차등 전송을 위해 모든 파일을 검사해야 합니다. 파일 수가 수백만, 심지어 수천만 개에 달하면 모든 파일을 검사하는 데 시간이 많이 걸리고 그 중 일부만 변경되므로 매우 비효율적인 방법입니다. 둘째, rsync는 실시간으로 데이터를 모니터링하고 동기화할 수 없습니다. linux 데몬을 통해 시작 동기화를 수행할 수 있지만 두 시작 작업 사이에는 시간 차이가 있어야 하며 이로 인해 서버와 클라이언트 간의 불일치가 발생하고 애플리케이션 장애 시 데이터를 완전히 복구할 수 없습니다. . 위의 이유를 바탕으로 rsync+inotify가 등장했습니다!

2.inotify

(모니터링)

inotify

는 강력하고 세분화된 비동기 파일 시스템 이벤트 모니터링 메커니즘입니다. inotify를 통해 파일 시스템의 추가, 삭제, 수정, 이동 등 다양한 미묘한 이벤트를 모니터링할 수 있습니다. 이 커널 인터페이스를 사용하면 타사 소프트웨어가 파일 시스템의 다양한 변경 사항을 모니터링할 수 있으며 inotify - tools는 그러한 타사 소프트웨어입니다.

1.

서버 구성(rsync만 설치해야 함)

/tmp/에 공유:

1.

가상 사용자 추가 useradd rsync -s / sbin/nologin

chown -R rsync.rsync /tmp/

2.

Configurationrsyncd.conf구성 파일

vim rsyncd.conf

#rsync_config_______________시작

#rsyncd.conf start##

uid = rsync(사용자)

gid = rsync(사용자)

use chroot = no(보안 문제 방지를 위해)

최대 연결 = 200(내 백업 서버에 연결할 수 있는 클라이언트 수)

timeout = 300(시간 초과, 조치 없이 연결을 끊는 데 걸리는 시간)

pid 파일 = /var/run/rsyncd.pid(프로세스 번호, 이 파일에 프로세스 번호를 넣는다)

lock 파일 = /var/run/rsync.lock ("lock" 개념과 동일, 화장실 문을 잠그는 개념)

log 파일 = /var/log/rsyncd.log (오류가 발생했습니다. 로그 파일을 볼 수 있습니다)

[tmp] (모듈)

path = /tmp/ (경로)

오류 무시 (무시 오류 )

읽기 전용 = false(읽기 전용은 false, 읽기 및 쓰기 가능을 의미)

list = false(허용되지 않는 목록)

hosts 허용 = 10.0.0.0/24(허용되는 호스트)

hosts 거부 = 0.0.0.0/32 (거부된 호스트)

auth users = rsync_backup (가상 사용자 지원)

secrets 파일 = /etc/rsync.password (사용자 해당 비밀번호) 파일)

#rsync_config_______________end

3. 비밀번호 파일 만들기

echo "rsync_backup:123456" >/etc/rsync.password

모든 비밀번호 파일 600 권한 chmod 600 / etc/rsync.password

4.rsync --daemon 데몬

모드 시작

5. rsync --daemon/etc/rc.local

에 추가

echo "/usr/bin/rsync --daomom" >>/etc/rc.local

2. 클라이언트 구성

설치 rsyncinotify

1.설치 rsync(그냥 설치하세요)

2 . 비밀번호 인증 파일 생성

echo “123456” >/etc/rsync.password 비밀번호만 필요

권한 설정 600 chmod 600 /etc/rsync.password

3. 설치 inotify:

cd /home/cai/tools/

wget

54 tar xf ify-tools-3.14.tar.gz

55 ls

56 cd inotify-tools-3.14

57 ./configure --prefix=/usr/local/inotify-tools-3.14

58 make && make install

59냠 install -y gcc

60 ./configure --prefix=/usr/local/inotify-tools-3.14

61 make && make install

62 cd /usr/local/inotify-tools- 4.

스크립트가 모두 배치되었습니다

/server/scripts

Download

vim /server/scripts/rsync.sh

#!/bin/sh

host=192.168.76.1 29 src=/tmp/

des=tmp

user=rsync_backup

/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d%m%y % H:%M' --format ' %T %w%f%e' -e 수정, 삭제, 생성, 속성 $src |

파일을 읽는 동안

do

/usr/bin /rsync -avz --delete $src $user@$host::$des --password-file=/etc/rsync.password

echo "${files}이(가) rsync되었습니다" >>/var/ log/rsyncd.log 2>&1

done

exit o

~

764

권한 부여

테스트 스크립트:

sh /서버/스크립트/rsync. sh

스크립트 실행:

sh /server/scripts/rsync.sh &

부팅 항목에 rsync.sh스크립트를 넣습니다: echo

“/tmp/rsync.sh ” > >/etc/rc.local

위 내용은 rsync+inotify 실시간 동기화 예제 튜토리얼 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

win11에서 헤드폰과 스피커를 동시에 재생하는 문제 해결 win11에서 헤드폰과 스피커를 동시에 재생하는 문제 해결 Jan 06, 2024 am 08:50 AM

일반적으로 우리는 동시에 헤드폰이나 스피커 중 하나만 사용하면 됩니다. 그러나 일부 친구는 win11 시스템에서 헤드폰과 스피커가 동시에 들리는 문제가 발생했다고 보고했습니다. realtek 패널에서 끄면 괜찮을 것입니다. 아래를 살펴보겠습니다. win11에서 헤드폰과 스피커 소리가 함께 들리면 어떻게 해야 합니까? 1. 먼저 바탕 화면에서 "제어판"을 찾아 엽니다. 2. 제어판에 들어가서 "하드웨어 및 소리"를 찾아 엽니다. 스피커 아이콘이 있는 "Realtek High Definition"" 4. "스피커"를 선택하고 "후면 패널"을 클릭하여 스피커 설정으로 들어갑니다. 5. 열면 장치 유형이 표시됩니다. 헤드폰을 끄려면 "헤드폰"을 선택 취소하세요.

동기화한 폴더에 있는 하나 이상의 항목이 Outlook 오류와 일치하지 않습니다. 동기화한 폴더에 있는 하나 이상의 항목이 Outlook 오류와 일치하지 않습니다. Mar 18, 2024 am 09:46 AM

동기화 폴더에 있는 하나 이상의 항목이 Outlook의 오류 메시지와 일치하지 않는 경우 모임 항목을 업데이트하거나 취소했기 때문일 수 있습니다. 이 경우 로컬 버전의 데이터가 원격 복사본과 충돌한다는 오류 메시지가 표시됩니다. 이 상황은 일반적으로 Outlook 데스크톱 응용 프로그램에서 발생합니다. 동기화한 폴더에 있는 하나 이상의 항목이 일치하지 않습니다. 충돌을 해결하려면 프로젝트를 열고 작업을 다시 시도하십시오. 동기화된 폴더에 있는 하나 이상의 항목이 Outlook 오류와 일치하지 않는 문제 해결 Outlook 데스크톱 버전에서는 로컬 일정 항목이 서버 복사본과 충돌할 때 문제가 발생할 수 있습니다. 하지만 다행히도 도움을 줄 수 있는 몇 가지 간단한 방법이 있습니다.

Java와 WebSocket의 결합: 실시간 비디오 스트리밍을 달성하는 방법 Java와 WebSocket의 결합: 실시간 비디오 스트리밍을 달성하는 방법 Dec 17, 2023 pm 05:50 PM

인터넷 기술의 지속적인 발전으로 실시간 비디오 스트리밍은 인터넷 분야에서 중요한 응용 분야가 되었습니다. 실시간 비디오 스트리밍을 구현하기 위한 핵심 기술에는 WebSocket 및 Java가 포함됩니다. 이 기사에서는 WebSocket 및 Java를 사용하여 실시간 비디오 스트리밍 재생을 구현하는 방법을 소개하고 관련 코드 예제를 제공합니다. 1. WebSocket이란 무엇입니까? WebSocket은 단일 TCP 연결에서 전이중 통신을 위한 프로토콜입니다.

JavaScript 기반 실시간 번역 도구 구축 JavaScript 기반 실시간 번역 도구 구축 Aug 09, 2023 pm 07:22 PM

JavaScript 기반의 실시간 번역 도구 구축 서문 세계화에 대한 요구가 증가하고 국경 간 교류 및 교환이 빈번하게 발생함에 따라 실시간 번역 도구는 매우 중요한 응용 프로그램이 되었습니다. JavaScript와 일부 기존 API를 활용하여 간단하지만 유용한 실시간 번역 도구를 구축할 수 있습니다. 이 기사에서는 JavaScript를 기반으로 이 기능을 구현하는 방법을 코드 예제와 함께 소개합니다. 구현 단계 1단계: HTML 구조 생성 먼저 간단한 HTML을 생성해야 합니다.

C++를 사용하여 임베디드 시스템의 실시간 오디오 및 비디오 처리 기능 구현 C++를 사용하여 임베디드 시스템의 실시간 오디오 및 비디오 처리 기능 구현 Aug 27, 2023 pm 03:22 PM

C++를 활용하여 임베디드 시스템의 실시간 오디오 및 비디오 처리 기능 구현 임베디드 시스템의 적용 범위는 점점 더 광범위해지고 있으며, 특히 수요가 증가하는 오디오 및 비디오 처리 분야에서 더욱 그렇습니다. 이러한 요구에 직면하여 C++ 언어를 사용하여 임베디드 시스템의 실시간 오디오 및 비디오 처리 기능을 구현하는 것이 일반적인 선택이 되었습니다. 이 기사에서는 C++ 언어를 사용하여 임베디드 시스템의 실시간 오디오 및 비디오 처리 기능을 개발하는 방법을 소개하고 해당 코드 예제를 제공합니다. 실시간 오디오 및 비디오 처리 기능을 구현하려면 먼저 오디오 및 비디오 처리의 기본 프로세스를 이해해야 합니다. 일반적으로 오디오와 비디오는

iPhone의 Apple TV 앱에서 실시간 활동을 비활성화하는 방법 iPhone의 Apple TV 앱에서 실시간 활동을 비활성화하는 방법 Jun 29, 2023 pm 01:50 PM

라이브 이벤트는 다가오는 주문, 스포츠 게임 등을 확인할 수 있는 좋은 방법입니다. 이 새로운 알림 방법은 iOS 16 출시와 함께 처음 도입되었으며 iPhone에 알림이 전달되는 방식을 개선하도록 설계되었습니다. 실시간 데이터를 제공하는 모든 애플리케이션은 실시간 활동을 활용할 수 있으며 보류 중인 주문, 진행 중인 경기의 점수, 날씨 데이터, 다가오는 라이브 방송 등을 추적하는 데 널리 사용됩니다. 실시간 활동은 대기 모드에서도 알림 센터에 항상 표시됩니다(대기 모드를 활성화하고 iPhone이 도킹된 경우). 그러나 중단 없는 경험을 위해 Apple TV를 사용할 때 실시간 활동을 비활성화할 수 있습니다. iPhone에서 수행하는 방법은 다음과 같습니다. Apple TV를 비활성화하는 방법

JavaScript를 기반으로 실시간 주식 시세 표시 구축 JavaScript를 기반으로 실시간 주식 시세 표시 구축 Aug 08, 2023 am 08:03 AM

JavaScript 기반 실시간 주식 시세 표시 구축 소개: 금융 시장의 지속적인 발전으로 인해 실시간 주식 시세 표시는 투자자와 거래자에게 점점 더 중요해지고 있습니다. 현대의 거래 플랫폼에서는 실시간 주가 표시 기능을 제공하는 것이 필수적입니다. 이 기사에서는 JavaScript 및 일부 관련 기술을 사용하여 간단한 실시간 주식 시세 표시 애플리케이션을 구축하는 방법을 소개합니다. 준비 작업 시작하기 전에 다음 작업을 준비해야 합니다: HTML 및 CSS 기반 웹 페이지 프레임워크

JavaScript 기반의 실시간 채팅방 구축 JavaScript 기반의 실시간 채팅방 구축 Aug 10, 2023 pm 11:18 PM

JavaScript 기반 실시간 채팅방 구축 인터넷의 급속한 발전으로 사람들은 인스턴트 메시징과 실시간 대화 경험에 점점 더 많은 관심을 기울이고 있습니다. 일반적인 인스턴트 메시징 도구인 실시간 채팅방은 개인과 기업 모두에게 매우 중요합니다. 이 글에서는 JavaScript를 사용하여 간단한 실시간 채팅방을 구축하는 방법을 소개하고 해당 코드 예제를 제공합니다. 먼저 채팅방의 UI 인터페이스로 프런트 엔드 페이지가 필요합니다. 다음은 간단한 HTML 구조의 예입니다: <!DOCTYPE

See all articles