インストールガイド · 1 min read · Nov 17, 2025

Debian 8.4 Jessie に ISPConfig 3.1 を使用して Web、Email & MySQL データベースクラスターをインストールする - ページ 4

** 7 Unison をインストール

次に、Unison をインストールします。Unison は、server1 と server2 の間で /var/www ディレクトリを同期するために使用されます。

server1server2 に 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 に設定されている場合、このフラグはユーザーインターフェースが
#          矛盾しない変更に対して確認を求めるのをスキップします。(より正確には、ユーザーインターフェースが
#          1 つのエントリの伝播方向を設定し終え、次に移ろうとしているとき、すべての矛盾しないエントリをスキップし、
#          次の矛盾に直接進みます。)
auto=true
   
#          これが true に設定されている場合、ユーザーインターフェースは全く質問をしません。
#          矛盾しない変更は伝播され、矛盾はスキップされます。
batch=true
   
#          !これが true に設定されている場合、Unison は、全体のレプリカが削除されたように見える場合、
#          変更を伝播する前に追加の確認を要求します。バッチフラグも設定されている場合、
#          同期は中止されます。パスの優先度が使用されている場合、同じ確認が
#          トップレベルのパスに対して要求されます。(現時点では、このフラグはテキストユーザーインターフェースにのみ影響します。)
#          マウントポイントの優先度も参照してください。
confirmbigdel=true
   
#          この優先度が true に設定されている場合、Unison はファイルの修正時間と長さを
#          `擬似 inode 番号` として使用し、更新のためにレプリカをスキャンします。
#          各ファイルの完全な内容を読み取る代わりに。Windows では、これにより
#          Unison が更新を伝播し損なう可能性があります。
#          ただし、Unison は常に変更を伝播する直前に安全なチェックを行うため、
#          そのような更新を他のレプリカの変更で上書きすることはありません。したがって、
#          Windows ではほとんどの時間このスイッチを使用することが合理的であり、
#          Unison が更新を見落としたのではないかと心配な場合は、
#          fastcheck を false に設定して Unison を一度実行することができます。
#          この優先度のデフォルト値は auto で、これにより Unison は
#          Unix レプリカ(安全な場合)で高速チェックを使用し、Windows レプリカで遅いチェックを使用します。
#          後方互換性のために、yes、no、および default は true、false、および auto の代わりに使用できます。
#          詳細については、「高速チェック」セクションを参照してください。
fastcheck=true

#          このフラグが true に設定されている場合、ファイルのグループ属性が
#          同期されます。グループ名またはグループ識別子が同期されるかどうかは、
#          preference numerids に依存します。
group=true
   
#          このフラグが true に設定されている場合、ファイルの所有者属性が
#          同期されます。所有者名または所有者識別子が同期されるかどうかは、
#          preference 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 - error connecting remote"  
        else  
                $UNISON web  
        fi  
  
        rm $lockdir/unison  
else  
        $LOGGER -d -t unison "unison already running"  
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
Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。