こんにちは! JQです。
前回は『EC2編~lsyncd~』 ということで、lsyncdを利用してフォルダ間の自動同期処理をしてみました。
今回は『EC2編~lsyncd2~』と題して、lsyncdを利用して別サーバ間で自動同期処理してみたいと思います。
※今回はrsyncをたてずにSSHで行います。
SSH設定
1.SSH設定
今回はテストの為、rootを利用します。
※本来であればrsync専用ユーザーを作成してsudoなどでrsyncを許可する等がいいと思います。
同期元でキーの作成
1 |
# ssh-keygen -t rsa |
パブリックキーを取得します。
1 |
# cat .ssh/id_rsa.pub |
取得したキーを同期先のauthorized_keysに登録します。
1 |
# vim ~/.ssh/ authorized_keys |
また、rootログインを許可するように変更します。
1 2 3 4 5 |
# vim /etc/ssh/sshd_config PermitRootLogin yes # /etc/rc.d/init.d/sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ] |
実際に同期元から接続して試してみます。
1 |
# ssh root@[同期先] |
ログイン出来れば成功です。
2.lsyncdの設定
続いてlsyncdの設定を変更します。
下記では/test/ディレクトリを同期します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
settings{ statusFile = "/tmp/lsyncd.stat", logfile = "/var/log/lsyncd/lsyncd.log", } sync { default.rsyncssh, source = "/test/", host = "同期先", targetdir = "/test/", rsync = { archive = true } } |
再起動を行います。
1 2 3 |
# /etc/rc.d/init.d/lsyncd restart Stopping lsyncd: [ OK ] Starting lsyncd: [ OK ] |
3.確認
同期元でファイルを作成してみます。
1 |
# touch /test/test.txt |
実際にログを確認します。
1 2 3 4 |
# tail /var/log/lsyncd/lsyncd.log –f Thu Dec 26 10:14:40 2013 Normal: Rsyncing list /test.txt Thu Dec 26 10:14:40 2013 Normal: Finished (list): 0 |
異なるサーバ間でも同期が出来ています。
いかがでしたでしょうか?
次回はruby SDKを利用してスナップショットを別リージョンにコピーしたいと思います。。
お楽しみに!