Hai Adachinです。
(検証用サーバのネタです)
今回はlsyncdでミラーリングする方法をブログします。
とりあえず上記に図を作ってみました。
今までHTTPサーバまでファイルを移動するときに、
毎回ローカルから踏み台へ移動し、HTTPサーバへ移動するというなんとも
メンドクさいからAdachinなんとかしてくれとのことで、lsyncdでミラーリングすればいいんじゃないか。
となったので設定してみました。
■lsyncdとは
Live SYNCing (Mirror) Daemon の略だそうで、まさに同期プログラム(ミラーリング)です。
rsyncは転送するためのコマンドです。
■インストール
[ミラーリング元]踏み台
・RPMForgeリポジトリが無い場合。CentOS6 x86_64用
1 |
$ sudo yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm |
・lsyncd, rsyncインストール
1 |
$ sudo yum install lsyncd rsync |
[ミラーリング先]HTTPサーバ
・rsyncインストール
1 |
$ sudo yum install rsync |
※rootユーザでsshできるか確認しましょう!
■設定
[ミラーリング元]
・ミラーリング対象のディレクトリ作成
1 |
$ mkdir /home/adachin/test |
・設定ファイルを作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
$ sudo vim /etc/lsyncd.conf ---- -- User configuration file for lsyncd. -- -- Simple example for default rsync. -- settings { logfile = "/var/log/lsyncd.log", statusFile = "/tmp/lsyncd.stat", statusInterval = 1, maxProcesses = 2, nodaemon = false, insist = 1, delay = 3, } sync{ default.rsync, source="/home/adachin/test", target="root@192.168.xx.xx:/home/adachin/test", rsync = { owner = true, group = true, _extra = { "-a" } } } |
■lsyncd起動時のオプション設定ファイル修正などなど
1 2 |
$ sudo vim /etc/sysconfig/lsyncd LSYNCD_OPTIONS="-pidfile /var/run/lsyncd.pid /etc/lsyncd.conf" |
1 2 |
$ sudo vim /etc/init.d/lsyncd source /etc/sysconfig/lsyncd |
■ミラーリング先の設定
・ミラーリング用ディレクトリ作成
1 |
$ mkdir /home/adachin/test |
・ rsyncd.confファイルの作成
1 |
$ sudo vim /etc/rsyncd.conf |
1 2 3 4 5 6 7 8 9 10 |
uid = root gid = root read only = no log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid [adachin] path = /home/adachin/test hosts allow = localhost 192.168.xx.0/24 hosts deny = * read only = false |
・デーモンとして起動
1 |
$ sudo /usr/bin/rsync --daemon --config=/etc/rsyncd.conf |
■ミラーリング元にてlsyncd起動/確認
・lsyncd起動
1 |
$ sudo /etc/init.d/lsyncd start |
・テストファイル作成
1 |
$ touch /home/adachin/test/test |
・lsyncdのログを確認
1 2 3 4 5 |
$ tail -f /var/log/lsyncd.log Thu Dec 3 20:36:31 2015 Normal: Calling rsync with filter-list of new/modified files/dirs /test / Thu Dec 3 20:36:31 2015 Normal: Finished a list after exitcode: 0 |
[ミラーリング先]HTTPサーバ
・ ファイルができているか確認
1 2 |
$ ls /home/adachin/test/ test |
■まとめ
複数のディレクトリ指定する場合はsync{}で同じ用に囲っちゃえばOK
ハマったのはrootユーザでsshができるようにすること。
ミラーリング先のsshd.configでrootユーザでもsshできるオンをすればダイジョーブ
参考:http://qiita.com/ftakao2007/items/41c5c0653892d1454c39
0件のコメント