2013年7月30日火曜日

lsyncで所有者権限を維持する方法

■概要
/usr/local/sync_dirのフォルダ同士をlsyncを使って同期します
/usr/local/sysc_dirの所有者がrootになっており、lsyncdプロセスを起動したユーザもrootとします

上記のケースで/usr/local/sysc_dir配下にtestuserが作成したファイルを同期したいと思います
testuserが作成したファイルの権限は当たり前ですが、tsetuser:testuserの権限となります
デフォルトの設定で上記ファイルを同期をすると同期元のファイルはtestuser:testuserのままですが、
同期先のファイルがroot:rootに変更になってしまいます

今回は同期先の所有者権限をtestuser:testuserに維持する方法をご紹介します

なおlsyncのバージョンは「Version: 2.1.4」とします

■設定
vim /etc/lsyncd.conf
settings {
  statusFile = "/tmp/lsyncd.stat",
  logfile = "/var/log/lsyncd.log",
  statusInterval = 1,
}

sync {
  default.rsync,
  source="/lsync",
  target="192.168.10.101:/lsync",
  rsync = {
    owner = true,
    group = true
  }
}

ポイントは「owner = true」「group = true」の箇所です
これをtrueにすることで所有者情報を維持したまま同期することができます
上記書き換え後にlsyncdプロセスを再起動すれば完了です

実はlsyncはバージョン2以降で指定できるパラメータの方法が変わりました
以前、http://kakakikikeke.blogspot.jp/2013/05/lsyncd.htmlを書いたのですが
ここで記載している設定ファイルはバージョン1系でのみ有効なして方法となります
特に「rsyncOps = "-av"」の部分は2系では有効にならないため権限情報もrootに変換されてしまいます

2系のdefault.rsyncで指定できるパラメータの情報は以下が公式で参考になります
https://github.com/axkibe/lsyncd/wiki/Lsyncd%202.1.x%20%E2%80%96%20Layer%204%20Config%20%E2%80%96%20Default%20Behavior

gitWikiのせいなのかGoogle先生のSEOが悪いのかはわかりませんがググっても公式サイトがあまり出てこないんですよね

0 件のコメント:

コメントを投稿