#freeze
*rsyncサーバの構築 [#bb5ab647]
-方針~
--rsyncはOSXの付属物をそのまま使用することにする。~
--SSHのポートをインターネット側に開放したく無かったので、Rsyncをデーモンとして走らせることにした。~
--Rsyncで開放するコンテンツは、元々パブリックな物なので、セキュリティ等は考慮しない。~
--ただし、限られたホストからのみにアクセスを限定するように設定する。(回線がすぐ飽和しちゃうので)~
~

-rsyncの設定~
--/usr/local/etc/rsync~
本ディレクトリをrsyncの設定ファイル置き場とする。~
#pre{{ 
Macmini:~ user$ sudo mkdir -p /usr/local/etc/rsync
}}

--/usr/loca/etc/rsync/rsyncd.conf~
次のようなラベルを定義。~
---[public] download以下を公開。ホストでアクセス制限を行う。
---[local]  自分用のバックアップパス。LAN内からのみアクセス可能。
--
設定の詳細は、http://www.infoscience.co.jp/technical/rsync/rsyncd_conf.html を参照。~
#pre{{
log file=/usr/local/etc/rsync/rsyncd.log
pid file=/usr/local/etc/rsync/rsyncd.pid
read only=true
use chroot=yes
list=false

[public]
 path=/Users/www/Sites/www/download
 comment=kogiidena download area
 exclude from=/usr/local/etc/rsync/rsyncd.exclude
 hosts allow=&color(red){*.aaa.ne.jp}; &color(red){*.bbb.co.jp}; 192.168.1.0/24 
&color(blue){# auth users=rsync};
&color(blue){# secrets file=/usr/local/etc/rsync/rsyncd.secrets};
&color(blue){# strict modes=true};
&color(blue){# uid=root};
&color(blue){# gid=wheel};

[local]
 path=/Users/www/Sites/www
 comment=kogiidena downlad at www
# exclude from=/usr/local/etc/rsync/rsyncd.exclude
 hosts allow=192.168.1.0/24 
}}
--/usr/loca/etc/rsync/rsyncd.exclude~
rsyncd.confファイルから参照される。~
rsync対象から除外したいファイル名(パターン)を列挙する。~
#pre{{
debian_old/
.*
}}
 *~
#pre{{
index.html
}}
--/usr/loca/etc/rsync/rsyncd.secrets~
rsyncd.confファイルから参照される。&color(blue){(ただしコメント化しているので無効)};~
パスワードにより、rsyncのアクセス制限を行いたい場合使用する。~
(パスワードは平文のまま、インターネット上を流れるため注意が必要。)~
#pre{{
rsync:passwd
}}

-SystemStaterの設定~
ブート時にrsyncデーモンを起動するよう設定を行います。~
--/Library/StartupItems/Rsync~
#pre{{ 
Macmini:~ user$ sudo mkdir -p /Library/StartupItems/Rsync
}}
--/etc/hostconfig~
最終行へ追加~
#pre{{
RSYNCSERVER=-YES-
}}
--/Library/StartupItems/Rsync/Rsync~
(作成後、実行属性を付けること sudo chmod +x filename) ~
#pre{{
#!/bin/sh

. /etc/rc.common

RSYNCPID=/usr/local/etc/rsync/rsyncd.pid
StartService ()
{
    if [ "${RSYNCSERVER:=-NO-}" = "-YES-" ]; then
            if [ ! -e $RSYNCPID ]; then 
                ConsoleMessage "Starting Rsync services"
                rsync --daemon --config=/usr/local/etc/rsync/rsyncd.conf
            fi
    fi
}

StopService ()
{
    if [ -r $RSYNCPID ]; then
        ConsoleMessage "Stopping Dovecot imap services"
        kill `cat $RSYNCPID`
    fi
}

RestartService ()
{
        StopService
        sleep 3
        StartService
}

RunService "$1"
}}

--/Library/StartupItems/Rsync/StartupParameters.plist~
#pre{{
{
  Description   = "Rsync server";
  Provides      = ("Rsync");
  Requires      = ("Resolver");
  Uses          = ("Network Time", "NFS");
  Preference    = "None";
  Messages =
  {
    start = "Starting Rsync";
    stop  = "Stopping Rsync";
    restart  = "Restart Rsync";
  };
}
}}

--起動方法等~
以上で、OS起動時に自動的にデーモンが開始されるようになりました。~
なお、手動でデーモンを起動/停止/再起動するには、次のようにします。~
#pre{{
Macmini:~ user$ sudo SystemStarter start Rsync
Macmini:~ user$ sudo SystemStarter stop Rsync
Macmini:~ user$ sudo SystemStarter restart Rsync
}}
-ルータ設定 … rsync(Port873)のフォワード~
インターネット上に公開する場合は、ルータのポートフォワードをお忘れなく。~
~
以上でrsyncサーバの設定は終了です。~
~
*クライアント側からファイル同期 [#m225e862]
-例1~
#pre{{
landisk:~/backup$ rsync -av 192.168.1.80::local ./
}}
-例2~
foo.aaa.ne.jp から。
#pre{{
foo:~/mirror$ rsync -av eggplant.ddo.jp::public ./
}}
~
~

#navi(Mac mini);

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS