rsync+inotify 전송 방식에서의 실시간 동기화와 시간 동기화

rsync+inotify 전송 방식에서의 실시간 동기화와 시간 동기화
A 호스트: 192.168.80.146 서버(동기화 모듈 + 암호 파일 구성)
B 호스트: 192.168.80.141 클라이언트(동기화 모듈을 구성할 필요가 없고 암호 파일은 암호와 서버의 암호만 포함해야 함)
2개의 호스트에서 각각/data/dat2/dat3 생성
mkdir -p /data /dat2 /dat3

동기화해야 하는 디렉터리는/data/dat2 전송 스크립트/dat3에 다른 파일을 저장합니다
A 호스트: 서버 구성
# rsync 설치
yum install rsync*

# rsync 동기화 사용자 이름을 생성합니다. 가상 사용자는 시스템에 존재하지 않을 수 있습니다.
vim /etc/rsync.pass

# 형식-사용자 이름: 암호, 서버에서 사용자 이름 및 암호여야 함
www:www

# 해당 파일의 사용 권한을 600으로 변경해야 합니다. 그렇지 않으면 오류가 발생합니다.
chmod 600 /etc/rsync.pass

#rsync 자체가 이 파일을 만들지 않기 때문에 수동으로 rsyncd를 만들어야 합니다.conf
vim  /etc/rsyncd.conf

#rsyncd.conf 내용은 다음과 같습니다
uid=nobody
gid=nobody
use chroot =no
static mode = yes
max connections = 2
log file = /var/log/rsync.log
port = 873                          # 
timeout = 300                       # 
[web]
path=/data                          # 
comment = code path                 # 
ignore errors                       # IO 
read only = no                      #  
write only = no                     #  
hosts allow =192.168.80.141         # ip  
hosts deny = *                      # IP    * 
list = false                        #     true   fales
auth uses = www                     #  /etc/rsyncd.conf
secrets file =/etc/rsync.pass       # rsync 

# 주의: 설정 파일의 동기화 모듈 부분에 uid와gid가 나타나면 클라이언트의 소속 그룹과 대응합니다.
# rsync를 시작합니다.
rsync --daemon     # tar  

--------------------------------------클라이언트 설치 ------------------------------------------
B 호스트: 클라이언트 구성(푸시 모드)
#rsync + inotfy 설치
yum install rsy* inot*

#이것은inotfy가 설치한 패키지입니다. 위에 이미 여기에 설치하여 이름 백업을 했습니다. 
inotify-tools-devel
inotify-tools
# 이 파일 rsync 시작 시 테스트하기
echo "" > /etc/rsyncd.conf

#암호 파일을 만들려면 서버의 패스 파일과 암호가 같아야 합니다
echo "www" > /etc/rsync.pass

----------------------실시간 동기화 ---------------------------------
# 시작 스크립트 생성(실시간 동기화)
------------------------------------------------------------------------------------
vim tui.sh
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib /data/ \
|while read files
    do
    rsync -vzrtopg --delete --progress --password-file=/etc/rsync.pass /data/ [email protected]::web
              echo "${files} was rsynced" >>/dat2/rsynced.log 2>&1
    done

----------------------------------------------------------------------------------------
# Tui 부여.sh 실행 권한, 777 부여
chmod 777 tui.sh

# 백그라운드 실행 스크립트
/dat2/tui.sh &

# 시작 항목을 열려면 스크립트 시작 명령을 넣습니다.
echo "/dat2/tui.sh &" >> /etc/rc.local

# 테스트 섹션:
동기화를 시도해 보고 B 호스트의/data/아래에 폴더를 만들고 A 호스트의/data/ls에서 존재하는지 확인하십시오.
---------------------정시 동기화 ---------------------------------------------------------
정시 동기화:
#스크립트dingshi.sh
----------스크립트 내용 --------------------------------
rsync -vzrtopg --delete --progress --password-file=/etc/rsync.pass /data/ [email protected]::web
              echo "${files} was rsynced" >>/dat2/rsynced.log 2>&1

-------------------------------------------------------------------------
팁:rsync -vzrtopg -- delete --progress --password-file=/etc/rsync.pass www( )@ 192.168 . 80.146 ::web( )
#실행 권한 부여
chmod 777 dingshi.sh

# 스케줄 지정 작업을 수행하고 2분마다 동기화 작업 수행
crontab -e
*/2 * * * * root /dat2/dingshi.sh

# 테스트는/data에 임의의 파일을 동기화하고 2분 후에 192.168.80.141의/data에도 존재하는지 검사하면 된다.

좋은 웹페이지 즐겨찾기