2012年5月14日月曜日

"lsyncd"でS3と同期

スズキです。

こちらで"lsyncd"のインストールができたので、
CentOS6.2に"lsyncd"をインストール
次はS3との同期を試してみます。

といっても、"/etc/lsyncd.conf"を下記のようにするだけです。
settings = {
    logfile    = "/var/log/lsyncd.log",
    statusFile = "/var/log/lsyncd.status",
    nodaemon   = true,
}

s3sync = {
    maxProcesses = 1,
    onStartup = "s3cmd -c /root/.s3cfg -P -r --delete-removed sync ^source ^target/",
    onCreate  = "s3cmd -c /root/.s3cfg -P put ^source^pathname   ^target^pathname",
    onModify  = "s3cmd -c /root/.s3cfg -P put ^source^pathname   ^target^pathname",
    onDelete  = "s3cmd -c /root/.s3cfg    del                    ^target^pathname",
    onMove    = "s3cmd -c /root/.s3cfg    mv  ^target^o.pathname ^target^d.pathname",
}

sync{
    s3sync,
    source = "/tmp/src",
    target = "s3://www.suz-lab.com/tmp",
}
当然"s3cmd"のインストールは下記のように行なっておきます。
# yum -y install s3cmd
"lsyncd"再起動後、対象のディレクトリ(/tmp/src)にファイルを追加・変更・削除を行うと、
同様の操作が対象のS3(s3://www.suz-lab.com/tmp)にも反映されていることがわかります。

対象ファイルの制限やS3側のアクセスコントロールなどは、"s3cmd"の設定となります。

FTPなどと連携すれば、"Write Proxyパターン"でしょうか?
--------
http://www.suz-lab.com


0 コメント: