rsyncサーバの構築 Edit

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

  • rsyncの設定
    • /usr/local/etc/rsync
      本ディレクトリをrsyncの設定ファイル置き場とする。
      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 を参照。
    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=*.aaa.ne.jp *.bbb.co.jp 192.168.1.0/24 
    # auth users=rsync
    # secrets file=/usr/local/etc/rsync/rsyncd.secrets
    # strict modes=true
    # uid=root
    # 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対象から除外したいファイル名(パターン)を列挙する。
    debian_old/
    .*
    
    *~
    index.html
    
  • /usr/loca/etc/rsync/rsyncd.secrets
    rsyncd.confファイルから参照される。(ただしコメント化しているので無効)
    パスワードにより、rsyncのアクセス制限を行いたい場合使用する。
    (パスワードは平文のまま、インターネット上を流れるため注意が必要。)
    rsync:passwd
    
  • SystemStaterの設定
    ブート時にrsyncデーモンを起動するよう設定を行います。
    • /Library/StartupItems/Rsync
      Macmini:~ user$ sudo mkdir -p /Library/StartupItems/Rsync
      
    • /etc/hostconfig
      最終行へ追加
      RSYNCSERVER=-YES-
      
    • /Library/StartupItems/Rsync/Rsync
      (作成後、実行属性を付けること sudo chmod +x filename)
      #!/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
    {
      Description   = "Rsync server";
      Provides      = ("Rsync");
      Requires      = ("Resolver");
      Uses          = ("Network Time", "NFS");
      Preference    = "None";
      Messages =
      {
        start = "Starting Rsync";
        stop  = "Stopping Rsync";
        restart  = "Restart Rsync";
      };
    }
    
  • 起動方法等
    以上で、OS起動時に自動的にデーモンが開始されるようになりました。
    なお、手動でデーモンを起動/停止/再起動するには、次のようにします。
    Macmini:~ user$ sudo SystemStarter start Rsync
    Macmini:~ user$ sudo SystemStarter stop Rsync
    Macmini:~ user$ sudo SystemStarter restart Rsync
    
  • ルータ設定 … rsync(Port873)のフォワード
    インターネット上に公開する場合は、ルータのポートフォワードをお忘れなく。

    以上でrsyncサーバの設定は終了です。

クライアント側からファイル同期 Edit

  • 例1
    landisk:~/backup$ rsync -av 192.168.1.80::local ./
    
  • 例2
    foo.aaa.ne.jp から。
    foo:~/mirror$ rsync -av eggplant.ddo.jp::public ./
    




トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-07-20 (木) 18:01:08 (6495d)