1.rsync
기존 cp, tar 백업 방법과 비교하여 rsync는 rsync를 통해 높은 보안, 빠른 백업 및 증분 백업 지원이라는 장점이 있습니다. 원격 서버에 대한 파일 서버 데이터의 정기적인 백업, 로컬 디스크의 정기적인 데이터 미러링 등과 같이 높은 실시간 성능이 필요하지 않은 데이터 백업 요구 사항을 해결할 수 있습니다.
응용 시스템의 규모가 계속 확장됨에 따라 데이터 보안 및 안정성에 대한 요구 사항이 더욱 높아졌습니다. 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. 클라이언트 구성
설치 rsync 및 inotify
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/scriptsDownload
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!