티스토리 뷰
lsyncd (실시간 동기화)
예전에 rsync 와 연동하여 몇번 사용했던건데 잘 사용하면 꽤 유용할듯 하다.
rsyncd 단점
실시간 동기화의 어려움
시스템 퍼포먼스 분산의 어려움
차등 동기화 방식으로 서버 댓수에 따라 동기화 시간이 걸린다
시스템 퍼포먼스 분산의 어려움
차등 동기화 방식으로 서버 댓수에 따라 동기화 시간이 걸린다
Inotify 파일 시스템을 감지하는 커널모듈
[root@localhost ~]# grep -i inotify /boot/config-`uname -r`
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
설치
./configure
make && make install
make && make install
원본자료 → 동기화할 서버 (백업서버?)
xxx.xxx.250.98 → xxx.xxx.26.4
Lsyncd Rsyncd.conf + xinetd
xxx.xxx.250.98 서버에서는 단지
lsyncd /home/tc1/ xxx.xxx.26.4::BACKUP 요렇게만 날려주면 데몬이 올라가면서 자동으로 동기화 된다.
26.4 서버에서는
vim /etc/rsyncd.conf 아래와 같이 작성해줬다.
[BACKUP]
path = /home/test
comment = lsyncd test
uid = root
gid = root
use chroot = yes
read only = no
hosts allow = xxx.xxx.250.98
max connections = 1
timeout 600
path = /home/test
comment = lsyncd test
uid = root
gid = root
use chroot = yes
read only = no
hosts allow = xxx.xxx.250.98
max connections = 1
timeout 600
여러개를 동기화 할려면 lsyncd.conf 파일일 수정해준다 아래꺼 같은데 수정해주고 /etc/init.d/lsyncd 스크립트 만들어서
시작해주면 될듯 ..
/usr/local/src/lsyncd-1.26/lsyncd.conf.xml
스크립트는 아래와 같다..
/etc/init.d/lsyncd [stop | start| 이런식으로 날려주자~
#!/bin/bash
# description: lsyncd auto start script
# description: lsyncd auto start script
start() {
pid=`pidof lsyncd`
if [ $? -eq 0 ]; then
echo "lsyncd (pid $pid) is running..."
echo " "
else
echo "Starting lsyncd..."
echo " "
/usr/local/bin/lsyncd
fi
}
pid=`pidof lsyncd`
if [ $? -eq 0 ]; then
echo "lsyncd (pid $pid) is running..."
echo " "
else
echo "Starting lsyncd..."
echo " "
/usr/local/bin/lsyncd
fi
}
stop() {
echo "Stopping lsyncd..."
echo " "
/bin/kill -9 `/sbin/pidof rsync`
until [ -z $(/sbin/pidof lsyncd) ]; do :; done
}
echo "Stopping lsyncd..."
echo " "
/bin/kill -9 `/sbin/pidof rsync`
until [ -z $(/sbin/pidof lsyncd) ]; do :; done
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
pid=`pidof lsyncd`
if [ $? -eq 0 ]; then
echo "lsyncd (pid $pid) is running..."
echo " "
else
echo "lsyncd is not running"
echo " "
fi
;;
*)
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
pid=`pidof lsyncd`
if [ $? -eq 0 ]; then
echo "lsyncd (pid $pid) is running..."
echo " "
else
echo "lsyncd is not running"
echo " "
fi
;;
*)
echo "Usage: lsyncd {start|stop|restart|status}"
exit 1
esac
exit 1
esac
exit $?
운영하다가 보면 디렉토리가 8천개 넘는경우 동기화가 정상적으로 작동 되지 않는다.
아이노티파이 기본적은 디렉토리는 8천 몇백개 정도 인듯 하다. 이걸 강제로 수정한다.
[root@localhost ~]# cat /proc/sys/fs/inotify/max_user_watches
8192
커널변수 수정
vim /etc/sysctl 열어서 아래라인 삽입하고
# lsyncd max Directory number fix
fs.inotify.max_user_watches = 16000
sysctl -p 적용한다.
[root@localhost ~]# cat /proc/sys/fs/inotify/max_user_watches
8192
커널변수 수정
vim /etc/sysctl 열어서 아래라인 삽입하고
# lsyncd max Directory number fix
fs.inotify.max_user_watches = 16000
sysctl -p 적용한다.
특정디렉토리만 지울려고 할때
<settings>
<exclude-from filename="/etc/lsyncd_exclude.lst"/>
</settings>
/etc/lsyncd_exclude.lst
- 아래와 같이 제외 시킬 디렉토리 지정만 해주면 됨
lib/sms_old
lib/sms
lib/sms/LOCK
lib/sms/LOG
lib/sms
lib/sms/LOCK
lib/sms/LOG
'Linux' 카테고리의 다른 글
vsftp 설치 / passive-Mode 및 방화벽 설정 (linux 리눅스) (0) | 2015.06.04 |
---|---|
리눅스 vi 편집기 정리 (0) | 2015.06.04 |
리눅스 alias 개념 (0) | 2015.06.04 |
mon.cf 예제들... (0) | 2015.06.04 |
cron (crontab) (0) | 2015.06.04 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- MySQL
- 리눅스
- HAProxy
- OpenVPN
- mariadb
- virtualbox
- IPSEC
- GeoIP
- L2TP
- mod_security
- glusterfs
- php
- 베이어다이나믹
- kvm
- centos8
- ssh
- iptables
- Apache
- yum
- galera
- cURL
- 인증서
- softether
- SSL
- ntp
- WAF
- gitlab
- pptp
- NGINX
- centOS7
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함