서버 설정 · 3 min read · Nov 17, 2025
Debian 8.4 Jessie에서 ISPConfig 3.1을 사용하여 웹, 이메일 및 MySQL 데이터베이스 클러스터 설치 - 페이지 4
** 7 Unison 설치
다음으로 Unison을 설치합니다. Unison은 server1과 server2 간의 /var/www 디렉토리를 동기화하는 데 사용됩니다.
server1과 server2에 unison을 설치하려면
apt-get install unison이제 server1에 unison 구성 파일을 설치합니다:
새 파일 /root/.unison/web을 만듭니다:
mkdir /root/.unison
vi /root/.unison/web.prf… 다음 내용을 추가합니다:
# 동기화의 루트
root = /var/www
root = ssh://192.168.0.106//var/www
# 동기화할 경로
#path = www
#path = vmail
# 무시할 이름과 경로를 지정하는 일부 정규 표현식
#ignore = Path stats ## /var/www/stats 무시
#ignore = Path stats/* ## /var/www/stats/* 무시
#ignore = Path */stats ## /var/www/somedir/stats 무시, 하지만 /var/www/a/b/c/stats는 무시하지 않음
#ignore = Name *stats ## "stats"로 끝나는 모든 파일/디렉토리 무시
#ignore = Name stats* ## "stats"로 시작하는 모든 파일/디렉토리 무시
#ignore = Name *.tmp ## .tmp 확장자를 가진 모든 파일 무시
ignore = Name sess_*
ignore = Name *access.log*
ignore = Name error.log
ignore = Name webalizer.conf
# true로 설정하면 이 플래그는 사용자 인터페이스가
# 비충돌 변경 사항에 대한 확인을 요청하는 것을 건너뛰게 합니다. (더 정확히 말하자면, 사용자 인터페이스가
# 하나의 항목에 대한 전파 방향 설정을 마치고 다음으로 이동할 준비가 되었을 때,
# 모든 비충돌 항목을 건너뛰고 다음 충돌로 직접 이동합니다.)
auto=true
# true로 설정하면 사용자 인터페이스는 전혀 질문하지 않습니다.
# 비충돌 변경 사항은 전파됩니다;
# 충돌은 건너뛰어집니다.
batch=true
# !true로 설정하면 Unison은 전체 복제본이
# 삭제된 것처럼 보일 경우 변경 사항을 전파하기 전에 추가
# 확인을 요청합니다. 배치 플래그가 설정된 경우,
# 동기화가 중단됩니다. 경로
# 기본 설정이 사용될 때, 최상위 경로에 대해서도 동일한 확인이 요청됩니다.
# (현재 이 플래그는 텍스트 사용자 인터페이스에만 영향을 미칩니다.) 마운트 포인트 기본 설정도 참조하십시오.
confirmbigdel=true
# 이 기본 설정이 true로 설정되면 Unison은
# 파일의 수정 시간과 길이를 `의사 inode
# 번호'로 사용하여 업데이트를 위해 복제본을 스캔합니다.
# 모든 파일의 전체 내용을 읽는 대신. Windows에서는
# 업데이트에 의해 수정 시간과 길이가 모두 변경되지 않은 경우
# Unison이 업데이트 전파를 놓칠 수 있습니다.
# 그러나 Unison은 항상 변경 사항을 전파하기 직전에
# 업데이트에 대한 안전한 검사를 수행하므로,
# Unison이 업데이트를 간과할 수 있다고 걱정하는 경우,
# 대부분의 경우 Windows에서 이 스위치를 사용하는 것이 합리적이며,
# fastcheck를 false로 설정하여 Unison을 한 번 실행합니다.
# 기본값은 auto이며, 이는 Unison이 Unix 복제본에서
# 빠른 검사를 사용하고 (안전한 경우) Windows 복제본에서
# 느린 검사를 사용하게 합니다. 이전 호환성을 위해,
# yes, no 및 default는 true, false 및 auto 대신 사용할 수 있습니다.
# 더 많은 정보는 "빠른 검사" 섹션을 참조하십시오.
fastcheck=true
# 이 플래그가 true로 설정되면 파일의 그룹 속성이
# 동기화됩니다. 그룹 이름 또는 그룹
# 식별자가 동기화되는지는 기본 설정 numerids에 따라 다릅니다.
group=true
# 이 플래그가 true로 설정되면 파일의 소유자 속성이
# 동기화됩니다. 소유자 이름 또는 소유자
# 식별자가 동기화되는지는 기본 설정 extttnumerids에 따라 다릅니다.
owner=true
# 기본 설정 -prefer root를 포함하면 Unison은 항상
# 사용자에게 안내를 요청하는 대신 root에 유리하게
# 충돌을 해결합니다. (root의 구문은 root 기본 설정과 동일하며,
# 특별 값인 newer 및 older가 추가됩니다.)
# 이 기본 설정은 preferpartial 기본 설정에 의해 무시됩니다.
# 이 기본 설정은 자신이 무엇을 하고 있는지 확실히 알고 있는 경우에만 사용해야 합니다!
prefer=newer
# 이 기본 설정이 true로 설정되면 텍스트 사용자 인터페이스는
# 오류가 발생한 경우를 제외하고는 아무것도 출력하지 않습니다.
# silent를 true로 설정하면 자동으로 배치 기본 설정이
# true로 설정됩니다.
silent=true
# 이 플래그가 true로 설정되면 파일 수정 시간(디렉토리 수정 시간 제외)이
# 전파됩니다.
times=false
# 이 플래그가 설정되면 Unison은 파일 시스템의 모든 변경 사항을
# 파일에 기록합니다.
log=false
# 이 플래그가 true로 설정되면 그룹과 사용자가 이름이 아닌 숫자로 동기화됩니다.
# 특별 uid 0 및 특별 그룹 0은 이 기본 설정이 설정되지 않은 경우에도
# 사용자/그룹 이름을 통해 매핑되지 않습니다.
numericids=true동기화를 자동화하려고 하므로 작은 스크립트를 만들고 server1에 cronjob을 생성합니다:
mkdir /root/scripts
vi /root/scripts/unison.sh다음 내용을 추가합니다:
#!/bin/sh
lockdir=/tmp
UNISON=/usr/bin/unison
LOGGER=/usr/bin/logger
if [ ! -f /$lockdir/unison ]; then
touch $lockdir/unison
$UNISON -testserver web
rc=$?
if [[ $rc != 0 ]] ; then
echo "error"
$LOGGER -d -t unison "web - 원격 연결 오류"
else
$UNISON web
fi
rm $lockdir/unison
else
$LOGGER -d -t unison "unison이 이미 실행 중입니다"
fi스크립트를 실행 가능하게 만듭니다:
chmod 700 /root/scripts/unison.sh첫 번째 동기화를 실행합니다. 동기화 중에 출력을 얻으려면 /root/.unsion/web.prf에서 silent = false로 설정합니다. 그 후, unison을 시작합니다:
/root/scripts/unison.sh마지막으로 cronjob을 생성합니다:
crontab -e# unison
* * * * * /root/scripts/unison.sh > /dev/null새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.